// C++/WinRT v2.0.250303.1

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

#pragma once
#ifndef WINRT_Windows_UI_Xaml_Controls_H
#define WINRT_Windows_UI_Xaml_Controls_H
#include "winrt/base.h"
static_assert(winrt::check_version(CPPWINRT_VERSION, "2.0.250303.1"), "Mismatched C++/WinRT headers.");
#define CPPWINRT_VERSION "2.0.250303.1"
#include "winrt/Windows.UI.Xaml.h"
#include "winrt/impl/Windows.ApplicationModel.Contacts.2.h"
#include "winrt/impl/Windows.ApplicationModel.DataTransfer.2.h"
#include "winrt/impl/Windows.ApplicationModel.Search.2.h"
#include "winrt/impl/Windows.Foundation.2.h"
#include "winrt/impl/Windows.Foundation.Collections.2.h"
#include "winrt/impl/Windows.Globalization.2.h"
#include "winrt/impl/Windows.Media.Capture.2.h"
#include "winrt/impl/Windows.Media.Casting.2.h"
#include "winrt/impl/Windows.Media.Core.2.h"
#include "winrt/impl/Windows.Media.PlayTo.2.h"
#include "winrt/impl/Windows.Media.Playback.2.h"
#include "winrt/impl/Windows.Media.Protection.2.h"
#include "winrt/impl/Windows.Storage.Streams.2.h"
#include "winrt/impl/Windows.System.2.h"
#include "winrt/impl/Windows.UI.2.h"
#include "winrt/impl/Windows.UI.Composition.2.h"
#include "winrt/impl/Windows.UI.Core.2.h"
#include "winrt/impl/Windows.UI.Input.Inking.2.h"
#include "winrt/impl/Windows.UI.Text.2.h"
#include "winrt/impl/Windows.UI.Xaml.2.h"
#include "winrt/impl/Windows.UI.Xaml.Automation.Peers.2.h"
#include "winrt/impl/Windows.UI.Xaml.Automation.Provider.2.h"
#include "winrt/impl/Windows.UI.Xaml.Controls.Primitives.2.h"
#include "winrt/impl/Windows.UI.Xaml.Data.2.h"
#include "winrt/impl/Windows.UI.Xaml.Documents.2.h"
#include "winrt/impl/Windows.UI.Xaml.Input.2.h"
#include "winrt/impl/Windows.UI.Xaml.Interop.2.h"
#include "winrt/impl/Windows.UI.Xaml.Media.2.h"
#include "winrt/impl/Windows.UI.Xaml.Media.Animation.2.h"
#include "winrt/impl/Windows.UI.Xaml.Navigation.2.h"
#include "winrt/impl/Windows.Web.2.h"
#include "winrt/impl/Windows.Web.Http.2.h"
#include "winrt/impl/Windows.UI.Xaml.Controls.2.h"
namespace winrt::impl
{
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAnchorRequestedEventArgs<D>::Anchor() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Anchor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Anchor(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAnchorRequestedEventArgs<D>::Anchor(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Anchor(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Anchor(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAnchorRequestedEventArgs<D>::AnchorCandidates() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AnchorCandidates(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_AnchorCandidates(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::UIElement>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsOpen() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOpen(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)this;
            check_hresult(_winrt_abi_type->get_IsOpen(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsOpen(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsOpen(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)this;
            check_hresult(_winrt_abi_type->put_IsOpen(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsSticky() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSticky(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)this;
            check_hresult(_winrt_abi_type->get_IsSticky(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::IsSticky(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSticky(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)this;
            check_hresult(_winrt_abi_type->put_IsSticky(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened(winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Opened(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)this;
            check_hresult(_winrt_abi_type->add_Opened(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Opened_revoker>(this, Opened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::Opened(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Opened(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)this;
            _winrt_abi_type->remove_Opened(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed(winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Closed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)this;
            check_hresult(_winrt_abi_type->add_Closed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Closed_revoker>(this, Closed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar<D>::Closed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Closed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar>**)this;
            _winrt_abi_type->remove_Closed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar2<D>::ClosedDisplayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::AppBarClosedDisplayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ClosedDisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar2>**)this;
            check_hresult(_winrt_abi_type->get_ClosedDisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar2<D>::ClosedDisplayMode(winrt::Windows::UI::Xaml::Controls::AppBarClosedDisplayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ClosedDisplayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar2>**)this;
            check_hresult(_winrt_abi_type->put_ClosedDisplayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar3>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::AppBarTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening(winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Opening(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar3>**)this;
            check_hresult(_winrt_abi_type->add_Opening(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Opening_revoker>(this, Opening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Opening(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Opening(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar3>**)this;
            _winrt_abi_type->remove_Opening(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing(winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Closing(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar3>**)this;
            check_hresult(_winrt_abi_type->add_Closing(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Closing_revoker>(this, Closing(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar3<D>::Closing(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Closing(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar3>**)this;
            _winrt_abi_type->remove_Closing(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar4<D>::LightDismissOverlayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar4>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBar4<D>::LightDismissOverlayMode(winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBar4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBar4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBar4>**)this;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Label() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Label(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton>**)this;
            check_hresult(_winrt_abi_type->get_Label(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Label(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Label(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton>**)this;
            check_hresult(_winrt_abi_type->put_Label(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Icon() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Icon(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton>**)this;
            check_hresult(_winrt_abi_type->get_Icon(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton<D>::Icon(winrt::Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Icon(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton>**)this;
            check_hresult(_winrt_abi_type->put_Icon(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton3<D>::LabelPosition() const
    {
        winrt::Windows::UI::Xaml::Controls::CommandBarLabelPosition value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButton3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LabelPosition(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton3>**)this;
            check_hresult(_winrt_abi_type->get_LabelPosition(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton3<D>::LabelPosition(winrt::Windows::UI::Xaml::Controls::CommandBarLabelPosition const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButton3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LabelPosition(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton3>**)this;
            check_hresult(_winrt_abi_type->put_LabelPosition(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton4<D>::KeyboardAcceleratorTextOverride() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButton4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverride(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton4>**)this;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverride(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton4<D>::KeyboardAcceleratorTextOverride(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButton4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_KeyboardAcceleratorTextOverride(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton4>**)this;
            check_hresult(_winrt_abi_type->put_KeyboardAcceleratorTextOverride(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButton5<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButton5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButton5>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::AppBarButtonTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::AppBarButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics<D>::LabelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LabelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_LabelProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics<D>::IconProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IconProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_IconProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics<D>::IsCompactProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCompactProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsCompactProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics3<D>::LabelPositionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LabelPositionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3>**)this;
            check_hresult(_winrt_abi_type->get_LabelPositionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics3<D>::IsInOverflowProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsInOverflowProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsInOverflowProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics3<D>::DynamicOverflowOrderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DynamicOverflowOrderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3>**)this;
            check_hresult(_winrt_abi_type->get_DynamicOverflowOrderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarButtonStatics4<D>::KeyboardAcceleratorTextOverrideProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverrideProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics4>**)this;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverrideProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarElementContainerFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::AppBarElementContainer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarElementContainerStatics<D>::IsCompactProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCompactProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsCompactProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarElementContainerStatics<D>::IsInOverflowProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsInOverflowProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsInOverflowProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarElementContainerStatics<D>::DynamicOverflowOrderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DynamicOverflowOrderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>**)this;
            check_hresult(_winrt_abi_type->get_DynamicOverflowOrderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::AppBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarOverrides<D>::OnClosed(winrt::Windows::Foundation::IInspectable const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnClosed(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides>**)this;
            check_hresult(_winrt_abi_type->OnClosed(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarOverrides<D>::OnOpened(winrt::Windows::Foundation::IInspectable const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnOpened(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides>**)this;
            check_hresult(_winrt_abi_type->OnOpened(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarOverrides3<D>::OnClosing(winrt::Windows::Foundation::IInspectable const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnClosing(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3>**)this;
            check_hresult(_winrt_abi_type->OnClosing(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarOverrides3<D>::OnOpening(winrt::Windows::Foundation::IInspectable const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnOpening(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3>**)this;
            check_hresult(_winrt_abi_type->OnOpening(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarSeparatorFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::AppBarSeparator{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarSeparatorStatics<D>::IsCompactProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCompactProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsCompactProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarSeparatorStatics3<D>::IsInOverflowProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsInOverflowProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsInOverflowProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarSeparatorStatics3<D>::DynamicOverflowOrderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DynamicOverflowOrderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>**)this;
            check_hresult(_winrt_abi_type->get_DynamicOverflowOrderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarStatics<D>::IsOpenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOpenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsOpenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarStatics<D>::IsStickyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsStickyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsStickyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarStatics2<D>::ClosedDisplayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ClosedDisplayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ClosedDisplayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarStatics4<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarStatics4>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Label() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Label(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>**)this;
            check_hresult(_winrt_abi_type->get_Label(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Label(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Label(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>**)this;
            check_hresult(_winrt_abi_type->put_Label(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Icon() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Icon(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>**)this;
            check_hresult(_winrt_abi_type->get_Icon(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton<D>::Icon(winrt::Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Icon(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>**)this;
            check_hresult(_winrt_abi_type->put_Icon(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton3<D>::LabelPosition() const
    {
        winrt::Windows::UI::Xaml::Controls::CommandBarLabelPosition value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LabelPosition(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3>**)this;
            check_hresult(_winrt_abi_type->get_LabelPosition(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton3<D>::LabelPosition(winrt::Windows::UI::Xaml::Controls::CommandBarLabelPosition const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LabelPosition(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3>**)this;
            check_hresult(_winrt_abi_type->put_LabelPosition(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton4<D>::KeyboardAcceleratorTextOverride() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverride(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4>**)this;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverride(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton4<D>::KeyboardAcceleratorTextOverride(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_KeyboardAcceleratorTextOverride(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4>**)this;
            check_hresult(_winrt_abi_type->put_KeyboardAcceleratorTextOverride(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButton5<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton5>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::AppBarToggleButtonTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::AppBarToggleButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics<D>::LabelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LabelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_LabelProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics<D>::IconProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IconProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_IconProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics<D>::IsCompactProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCompactProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsCompactProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics3<D>::LabelPositionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LabelPositionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>**)this;
            check_hresult(_winrt_abi_type->get_LabelPositionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics3<D>::IsInOverflowProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsInOverflowProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsInOverflowProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics3<D>::DynamicOverflowOrderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DynamicOverflowOrderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>**)this;
            check_hresult(_winrt_abi_type->get_DynamicOverflowOrderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAppBarToggleButtonStatics4<D>::KeyboardAcceleratorTextOverrideProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverrideProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4>**)this;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverrideProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::MaxSuggestionListHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxSuggestionListHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->get_MaxSuggestionListHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::MaxSuggestionListHeight(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxSuggestionListHeight(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->put_MaxSuggestionListHeight(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::IsSuggestionListOpen() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSuggestionListOpen(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->get_IsSuggestionListOpen(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::IsSuggestionListOpen(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSuggestionListOpen(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->put_IsSuggestionListOpen(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextMemberPath() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextMemberPath(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->get_TextMemberPath(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextMemberPath(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextMemberPath(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->put_TextMemberPath(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Text() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Text(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::UpdateTextOnSelect() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UpdateTextOnSelect(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->get_UpdateTextOnSelect(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::UpdateTextOnSelect(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_UpdateTextOnSelect(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->put_UpdateTextOnSelect(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::PlaceholderText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::PlaceholderText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::AutoMaximizeSuggestionArea() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AutoMaximizeSuggestionArea(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->get_AutoMaximizeSuggestionArea(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::AutoMaximizeSuggestionArea(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AutoMaximizeSuggestionArea(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->put_AutoMaximizeSuggestionArea(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextBoxStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextBoxStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->get_TextBoxStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextBoxStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextBoxStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->put_TextBoxStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::SuggestionChosen(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox, winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SuggestionChosen(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->add_SuggestionChosen(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::SuggestionChosen(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox, winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SuggestionChosen_revoker>(this, SuggestionChosen(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::SuggestionChosen(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SuggestionChosen(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            _winrt_abi_type->remove_SuggestionChosen(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox, winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            check_hresult(_winrt_abi_type->add_TextChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox, winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextChanged_revoker>(this, TextChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox<D>::TextChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>**)this;
            _winrt_abi_type->remove_TextChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QueryIcon() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_QueryIcon(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>**)this;
            check_hresult(_winrt_abi_type->get_QueryIcon(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QueryIcon(winrt::Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_QueryIcon(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>**)this;
            check_hresult(_winrt_abi_type->put_QueryIcon(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QuerySubmitted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox, winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_QuerySubmitted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>**)this;
            check_hresult(_winrt_abi_type->add_QuerySubmitted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QuerySubmitted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox, winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, QuerySubmitted_revoker>(this, QuerySubmitted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox2<D>::QuerySubmitted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_QuerySubmitted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>**)this;
            _winrt_abi_type->remove_QuerySubmitted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox3<D>::LightDismissOverlayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox3<D>::LightDismissOverlayMode(winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3>**)this;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox4<D>::Description() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4>**)this;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBox4<D>::Description(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4>**)this;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxQuerySubmittedEventArgs<D>::QueryText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_QueryText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_QueryText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxQuerySubmittedEventArgs<D>::ChosenSuggestion() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ChosenSuggestion(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_ChosenSuggestion(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::MaxSuggestionListHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxSuggestionListHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxSuggestionListHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::IsSuggestionListOpenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSuggestionListOpenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsSuggestionListOpenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::TextMemberPathProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextMemberPathProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextMemberPathProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::TextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::UpdateTextOnSelectProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UpdateTextOnSelectProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_UpdateTextOnSelectProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::PlaceholderTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::AutoMaximizeSuggestionAreaProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AutoMaximizeSuggestionAreaProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_AutoMaximizeSuggestionAreaProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics<D>::TextBoxStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextBoxStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextBoxStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics2<D>::QueryIconProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_QueryIconProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_QueryIconProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics3<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxStatics4<D>::DescriptionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4>**)this;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxSuggestionChosenEventArgs<D>::SelectedItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItem(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgs<D>::Reason() const
    {
        winrt::Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Reason(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Reason(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgs<D>::Reason(winrt::Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Reason(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Reason(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgs<D>::CheckCurrent() const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CheckCurrent(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->CheckCurrent(&result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IAutoSuggestBoxTextChangedEventArgsStatics<D>::ReasonProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ReasonProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics>**)this;
            check_hresult(_winrt_abi_type->get_ReasonProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBackClickEventArgs<D>::Handled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBackClickEventArgs<D>::Handled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIcon<D>::UriSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UriSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIcon>**)this;
            check_hresult(_winrt_abi_type->get_UriSource(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIcon<D>::UriSource(winrt::Windows::Foundation::Uri const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_UriSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIcon>**)this;
            check_hresult(_winrt_abi_type->put_UriSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIcon2<D>::ShowAsMonochrome() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIcon2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIcon2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIcon2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowAsMonochrome(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIcon2>**)this;
            check_hresult(_winrt_abi_type->get_ShowAsMonochrome(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIcon2<D>::ShowAsMonochrome(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIcon2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIcon2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIcon2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ShowAsMonochrome(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIcon2>**)this;
            check_hresult(_winrt_abi_type->put_ShowAsMonochrome(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIconFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::BitmapIcon{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::UriSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UriSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>**)this;
            check_hresult(_winrt_abi_type->get_UriSource(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::UriSource(winrt::Windows::Foundation::Uri const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_UriSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>**)this;
            check_hresult(_winrt_abi_type->put_UriSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::ShowAsMonochrome() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowAsMonochrome(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>**)this;
            check_hresult(_winrt_abi_type->get_ShowAsMonochrome(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSource<D>::ShowAsMonochrome(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ShowAsMonochrome(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>**)this;
            check_hresult(_winrt_abi_type->put_ShowAsMonochrome(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSourceFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::BitmapIconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSourceStatics<D>::UriSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UriSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_UriSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconSourceStatics<D>::ShowAsMonochromeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowAsMonochromeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_ShowAsMonochromeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconStatics<D>::UriSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UriSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics>**)this;
            check_hresult(_winrt_abi_type->get_UriSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBitmapIconStatics2<D>::ShowAsMonochromeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowAsMonochromeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ShowAsMonochromeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderThickness() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::BorderThickness(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Background() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Background(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->get_Background(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Background(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Background(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->put_Background(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::CornerRadius() const
    {
        winrt::Windows::UI::Xaml::CornerRadius value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::CornerRadius(winrt::Windows::UI::Xaml::CornerRadius const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Padding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Padding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Child() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Child(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->get_Child(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::Child(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Child(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->put_Child(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::ChildTransitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ChildTransitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->get_ChildTransitions(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder<D>::ChildTransitions(winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ChildTransitions(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder>**)this;
            check_hresult(_winrt_abi_type->put_ChildTransitions(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundSizing() const
    {
        winrt::Windows::UI::Xaml::Controls::BackgroundSizing value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder2>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundSizing(winrt::Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder2>**)this;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundTransition() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundTransition(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder2>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundTransition(&value));
        }
        return winrt::Windows::UI::Xaml::BrushTransition{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorder2<D>::BackgroundTransition(winrt::Windows::UI::Xaml::BrushTransition const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorder2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorder2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BackgroundTransition(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorder2>**)this;
            check_hresult(_winrt_abi_type->put_BackgroundTransition(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::BorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::BorderThicknessProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)this;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::BackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::CornerRadiusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::PaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics<D>::ChildTransitionsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ChildTransitionsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics>**)this;
            check_hresult(_winrt_abi_type->get_ChildTransitionsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IBorderStatics2<D>::BackgroundSizingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IBorderStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IBorderStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IBorderStatics2>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::Button{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IButtonStaticsWithFlyout<D>::FlyoutProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FlyoutProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout>**)this;
            check_hresult(_winrt_abi_type->get_FlyoutProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IButtonWithFlyout<D>::Flyout() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Flyout(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout>**)this;
            check_hresult(_winrt_abi_type->get_Flyout(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IButtonWithFlyout<D>::Flyout(winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Flyout(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout>**)this;
            check_hresult(_winrt_abi_type->put_Flyout(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Date() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Date(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_Date(&value));
        }
        return winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Date(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime> const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Date(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_Date(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsCalendarOpen() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCalendarOpen(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_IsCalendarOpen(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsCalendarOpen(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsCalendarOpen(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_IsCalendarOpen(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateFormat() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DateFormat(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_DateFormat(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateFormat(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DateFormat(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_DateFormat(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::PlaceholderText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::PlaceholderText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarViewStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_CalendarViewStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarViewStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_CalendarViewStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MinDate() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinDate(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_MinDate(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MinDate(winrt::Windows::Foundation::DateTime const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinDate(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_MinDate(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MaxDate() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxDate(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_MaxDate(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::MaxDate(winrt::Windows::Foundation::DateTime const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxDate(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_MaxDate(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsTodayHighlighted() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTodayHighlighted(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_IsTodayHighlighted(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsTodayHighlighted(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTodayHighlighted(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_IsTodayHighlighted(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DisplayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::CalendarViewDisplayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_DisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DisplayMode(winrt::Windows::UI::Xaml::Controls::CalendarViewDisplayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DisplayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_DisplayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::FirstDayOfWeek() const
    {
        winrt::Windows::Globalization::DayOfWeek value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstDayOfWeek(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_FirstDayOfWeek(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::FirstDayOfWeek(winrt::Windows::Globalization::DayOfWeek const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstDayOfWeek(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_FirstDayOfWeek(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DayOfWeekFormat() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayOfWeekFormat(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_DayOfWeekFormat(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DayOfWeekFormat(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DayOfWeekFormat(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_DayOfWeekFormat(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarIdentifier() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarIdentifier(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_CalendarIdentifier(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarIdentifier(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarIdentifier(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_CalendarIdentifier(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsOutOfScopeEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOutOfScopeEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_IsOutOfScopeEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsOutOfScopeEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsOutOfScopeEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_IsOutOfScopeEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsGroupLabelVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsGroupLabelVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_IsGroupLabelVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::IsGroupLabelVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsGroupLabelVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_IsGroupLabelVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging(winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CalendarViewDayItemChanging(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->add_CalendarViewDayItemChanging(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, CalendarViewDayItemChanging_revoker>(this, CalendarViewDayItemChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::CalendarViewDayItemChanging(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CalendarViewDayItemChanging(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            _winrt_abi_type->remove_CalendarViewDayItemChanging(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarDatePicker, winrt::Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DateChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->add_DateChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarDatePicker, winrt::Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DateChanged_revoker>(this, DateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::DateChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DateChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            _winrt_abi_type->remove_DateChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened(winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Opened(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->add_Opened(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Opened_revoker>(this, Opened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Opened(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Opened(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            _winrt_abi_type->remove_Opened(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed(winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Closed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->add_Closed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Closed_revoker>(this, Closed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::Closed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Closed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            _winrt_abi_type->remove_Closed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::SetDisplayDate(winrt::Windows::Foundation::DateTime const& date) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetDisplayDate(impl::bind_in(date)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->SetDisplayDate(impl::bind_in(date)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker<D>::SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetYearDecadeDisplayDimensions(columns, rows));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>**)this;
            check_hresult(_winrt_abi_type->SetYearDecadeDisplayDimensions(columns, rows));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker2<D>::LightDismissOverlayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker2<D>::LightDismissOverlayMode(winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2>**)this;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker3<D>::Description() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3>**)this;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePicker3<D>::Description(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3>**)this;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerDateChangedEventArgs<D>::NewDate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NewDate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_NewDate(&value));
        }
        return winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerDateChangedEventArgs<D>::OldDate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OldDate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_OldDate(&value));
        }
        return winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::CalendarDatePicker{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_DateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsCalendarOpenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCalendarOpenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsCalendarOpenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DateFormatProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DateFormatProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_DateFormatProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::PlaceholderTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::CalendarViewStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarViewStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_CalendarViewStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::MinDateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinDateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinDateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::MaxDateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxDateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxDateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsTodayHighlightedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTodayHighlightedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsTodayHighlightedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DisplayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_DisplayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::FirstDayOfWeekProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstDayOfWeekProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_FirstDayOfWeekProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::DayOfWeekFormatProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayOfWeekFormatProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_DayOfWeekFormatProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::CalendarIdentifierProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarIdentifierProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_CalendarIdentifierProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsOutOfScopeEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOutOfScopeEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsOutOfScopeEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics<D>::IsGroupLabelVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsGroupLabelVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsGroupLabelVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics2<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarDatePickerStatics3<D>::DescriptionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3>**)this;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarIdentifier() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarIdentifier(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_CalendarIdentifier(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarIdentifier(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarIdentifier(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_CalendarIdentifier(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayOfWeekFormat() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayOfWeekFormat(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_DayOfWeekFormat(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayOfWeekFormat(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DayOfWeekFormat(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_DayOfWeekFormat(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsGroupLabelVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsGroupLabelVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_IsGroupLabelVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsGroupLabelVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsGroupLabelVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_IsGroupLabelVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DisplayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::CalendarViewDisplayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_DisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DisplayMode(winrt::Windows::UI::Xaml::Controls::CalendarViewDisplayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DisplayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_DisplayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstDayOfWeek() const
    {
        winrt::Windows::Globalization::DayOfWeek value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstDayOfWeek(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_FirstDayOfWeek(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstDayOfWeek(winrt::Windows::Globalization::DayOfWeek const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstDayOfWeek(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_FirstDayOfWeek(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsOutOfScopeEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOutOfScopeEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_IsOutOfScopeEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsOutOfScopeEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsOutOfScopeEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_IsOutOfScopeEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsTodayHighlighted() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTodayHighlighted(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_IsTodayHighlighted(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::IsTodayHighlighted(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTodayHighlighted(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_IsTodayHighlighted(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MaxDate() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxDate(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_MaxDate(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MaxDate(winrt::Windows::Foundation::DateTime const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxDate(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_MaxDate(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MinDate() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinDate(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_MinDate(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MinDate(winrt::Windows::Foundation::DateTime const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinDate(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_MinDate(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::NumberOfWeeksInView() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NumberOfWeeksInView(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_NumberOfWeeksInView(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::NumberOfWeeksInView(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_NumberOfWeeksInView(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_NumberOfWeeksInView(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDates() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedDates(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_SelectedDates(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectionMode() const
    {
        winrt::Windows::UI::Xaml::Controls::CalendarViewSelectionMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_SelectionMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectionMode(winrt::Windows::UI::Xaml::Controls::CalendarViewSelectionMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_SelectionMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::CalendarViewTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FocusBorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FocusBorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_FocusBorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FocusBorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FocusBorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_FocusBorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedHoverBorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedHoverBorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_SelectedHoverBorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedHoverBorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedHoverBorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_SelectedHoverBorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedPressedBorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedPressedBorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_SelectedPressedBorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedPressedBorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedPressedBorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_SelectedPressedBorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedBorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedBorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_SelectedBorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedBorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedBorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_SelectedBorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HoverBorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HoverBorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_HoverBorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HoverBorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HoverBorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_HoverBorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedBorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PressedBorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_PressedBorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedBorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PressedBorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_PressedBorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemBorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemBorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarItemBorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_CalendarItemBorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OutOfScopeBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_OutOfScopeBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OutOfScopeBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_OutOfScopeBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarItemBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_CalendarItemBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PressedForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_PressedForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::PressedForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PressedForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_PressedForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_TodayForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TodayForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_TodayForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::BlackoutForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BlackoutForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_BlackoutForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::BlackoutForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BlackoutForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_BlackoutForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_SelectedForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_SelectedForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OutOfScopeForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_OutOfScopeForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::OutOfScopeForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OutOfScopeForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_OutOfScopeForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarItemForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_CalendarItemForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontFamily() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayItemFontFamily(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_DayItemFontFamily(&value));
        }
        return winrt::Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontFamily(winrt::Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DayItemFontFamily(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_DayItemFontFamily(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayItemFontSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_DayItemFontSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DayItemFontSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_DayItemFontSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontStyle() const
    {
        winrt::Windows::UI::Text::FontStyle value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayItemFontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_DayItemFontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontStyle(winrt::Windows::UI::Text::FontStyle const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DayItemFontStyle(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_DayItemFontStyle(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontWeight() const
    {
        winrt::Windows::UI::Text::FontWeight value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayItemFontWeight(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_DayItemFontWeight(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::DayItemFontWeight(winrt::Windows::UI::Text::FontWeight const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DayItemFontWeight(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_DayItemFontWeight(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayFontWeight() const
    {
        winrt::Windows::UI::Text::FontWeight value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayFontWeight(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_TodayFontWeight(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::TodayFontWeight(winrt::Windows::UI::Text::FontWeight const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TodayFontWeight(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_TodayFontWeight(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontFamily() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontFamily(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontFamily(&value));
        }
        return winrt::Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontFamily(winrt::Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstOfMonthLabelFontFamily(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_FirstOfMonthLabelFontFamily(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstOfMonthLabelFontSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_FirstOfMonthLabelFontSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontStyle() const
    {
        winrt::Windows::UI::Text::FontStyle value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontStyle(winrt::Windows::UI::Text::FontStyle const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstOfMonthLabelFontStyle(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_FirstOfMonthLabelFontStyle(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontWeight() const
    {
        winrt::Windows::UI::Text::FontWeight value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontWeight(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontWeight(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfMonthLabelFontWeight(winrt::Windows::UI::Text::FontWeight const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstOfMonthLabelFontWeight(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_FirstOfMonthLabelFontWeight(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontFamily() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontFamily(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontFamily(&value));
        }
        return winrt::Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontFamily(winrt::Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MonthYearItemFontFamily(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_MonthYearItemFontFamily(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MonthYearItemFontSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_MonthYearItemFontSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontStyle() const
    {
        winrt::Windows::UI::Text::FontStyle value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontStyle(winrt::Windows::UI::Text::FontStyle const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MonthYearItemFontStyle(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_MonthYearItemFontStyle(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontWeight() const
    {
        winrt::Windows::UI::Text::FontWeight value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontWeight(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontWeight(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::MonthYearItemFontWeight(winrt::Windows::UI::Text::FontWeight const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MonthYearItemFontWeight(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_MonthYearItemFontWeight(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontFamily() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontFamily(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontFamily(&value));
        }
        return winrt::Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontFamily(winrt::Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstOfYearDecadeLabelFontFamily(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_FirstOfYearDecadeLabelFontFamily(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstOfYearDecadeLabelFontSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_FirstOfYearDecadeLabelFontSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontStyle() const
    {
        winrt::Windows::UI::Text::FontStyle value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontStyle(winrt::Windows::UI::Text::FontStyle const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstOfYearDecadeLabelFontStyle(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_FirstOfYearDecadeLabelFontStyle(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontWeight() const
    {
        winrt::Windows::UI::Text::FontWeight value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontWeight(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontWeight(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::FirstOfYearDecadeLabelFontWeight(winrt::Windows::UI::Text::FontWeight const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstOfYearDecadeLabelFontWeight(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_FirstOfYearDecadeLabelFontWeight(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalDayItemAlignment() const
    {
        winrt::Windows::UI::Xaml::HorizontalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalDayItemAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalDayItemAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalDayItemAlignment(winrt::Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalDayItemAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalDayItemAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalDayItemAlignment() const
    {
        winrt::Windows::UI::Xaml::VerticalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalDayItemAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_VerticalDayItemAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalDayItemAlignment(winrt::Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalDayItemAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_VerticalDayItemAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalFirstOfMonthLabelAlignment() const
    {
        winrt::Windows::UI::Xaml::HorizontalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalFirstOfMonthLabelAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalFirstOfMonthLabelAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::HorizontalFirstOfMonthLabelAlignment(winrt::Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalFirstOfMonthLabelAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalFirstOfMonthLabelAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalFirstOfMonthLabelAlignment() const
    {
        winrt::Windows::UI::Xaml::VerticalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalFirstOfMonthLabelAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_VerticalFirstOfMonthLabelAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::VerticalFirstOfMonthLabelAlignment(winrt::Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalFirstOfMonthLabelAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_VerticalFirstOfMonthLabelAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderThickness() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemBorderThickness(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemBorderThickness(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarItemBorderThickness(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarItemBorderThickness(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_CalendarItemBorderThickness(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarViewDayItemStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->get_CalendarViewDayItemStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarViewDayItemStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->put_CalendarViewDayItemStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemChanging(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarView, winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CalendarViewDayItemChanging(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->add_CalendarViewDayItemChanging(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemChanging(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarView, winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CalendarViewDayItemChanging_revoker>(this, CalendarViewDayItemChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::CalendarViewDayItemChanging(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CalendarViewDayItemChanging(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            _winrt_abi_type->remove_CalendarViewDayItemChanging(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDatesChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarView, winrt::Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SelectedDatesChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->add_SelectedDatesChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDatesChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarView, winrt::Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectedDatesChanged_revoker>(this, SelectedDatesChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SelectedDatesChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SelectedDatesChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            _winrt_abi_type->remove_SelectedDatesChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SetDisplayDate(winrt::Windows::Foundation::DateTime const& date) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetDisplayDate(impl::bind_in(date)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->SetDisplayDate(impl::bind_in(date)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView<D>::SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetYearDecadeDisplayDimensions(columns, rows));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView>**)this;
            check_hresult(_winrt_abi_type->SetYearDecadeDisplayDimensions(columns, rows));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::SelectedDisabledBorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedDisabledBorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_SelectedDisabledBorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::SelectedDisabledBorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedDisabledBorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_SelectedDisabledBorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodaySelectedInnerBorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodaySelectedInnerBorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_TodaySelectedInnerBorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodaySelectedInnerBorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TodaySelectedInnerBorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_TodaySelectedInnerBorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::BlackoutStrikethroughBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BlackoutStrikethroughBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_BlackoutStrikethroughBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::BlackoutStrikethroughBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BlackoutStrikethroughBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_BlackoutStrikethroughBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::BlackoutBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BlackoutBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_BlackoutBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::BlackoutBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BlackoutBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_BlackoutBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::CalendarItemHoverBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemHoverBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemHoverBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::CalendarItemHoverBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarItemHoverBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_CalendarItemHoverBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::CalendarItemPressedBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemPressedBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemPressedBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::CalendarItemPressedBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarItemPressedBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_CalendarItemPressedBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::CalendarItemDisabledBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemDisabledBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemDisabledBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::CalendarItemDisabledBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarItemDisabledBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_CalendarItemDisabledBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_TodayBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TodayBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_TodayBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayBlackoutBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayBlackoutBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_TodayBlackoutBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayBlackoutBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TodayBlackoutBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_TodayBlackoutBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayHoverBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayHoverBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_TodayHoverBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayHoverBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TodayHoverBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_TodayHoverBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayPressedBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayPressedBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_TodayPressedBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayPressedBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TodayPressedBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_TodayPressedBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayDisabledBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayDisabledBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_TodayDisabledBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayDisabledBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TodayDisabledBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_TodayDisabledBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayBlackoutForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayBlackoutForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_TodayBlackoutForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::TodayBlackoutForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TodayBlackoutForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_TodayBlackoutForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::SelectedHoverForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedHoverForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_SelectedHoverForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::SelectedHoverForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedHoverForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_SelectedHoverForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::SelectedPressedForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedPressedForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_SelectedPressedForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::SelectedPressedForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedPressedForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_SelectedPressedForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::SelectedDisabledForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedDisabledForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_SelectedDisabledForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::SelectedDisabledForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedDisabledForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_SelectedDisabledForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::OutOfScopeHoverForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OutOfScopeHoverForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_OutOfScopeHoverForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::OutOfScopeHoverForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OutOfScopeHoverForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_OutOfScopeHoverForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::OutOfScopePressedForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OutOfScopePressedForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_OutOfScopePressedForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::OutOfScopePressedForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OutOfScopePressedForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_OutOfScopePressedForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::DisabledForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisabledForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_DisabledForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::DisabledForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DisabledForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_DisabledForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::DayItemMargin() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayItemMargin(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_DayItemMargin(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::DayItemMargin(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DayItemMargin(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_DayItemMargin(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::MonthYearItemMargin() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthYearItemMargin(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_MonthYearItemMargin(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::MonthYearItemMargin(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MonthYearItemMargin(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_MonthYearItemMargin(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::FirstOfMonthLabelMargin() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelMargin(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelMargin(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::FirstOfMonthLabelMargin(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstOfMonthLabelMargin(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_FirstOfMonthLabelMargin(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::FirstOfYearDecadeLabelMargin() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelMargin(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelMargin(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::FirstOfYearDecadeLabelMargin(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FirstOfYearDecadeLabelMargin(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_FirstOfYearDecadeLabelMargin(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::CalendarItemCornerRadius() const
    {
        winrt::Windows::UI::Xaml::CornerRadius value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemCornerRadius(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemCornerRadius(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarView2<D>::CalendarItemCornerRadius(winrt::Windows::UI::Xaml::CornerRadius const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarItemCornerRadius(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarView2>**)this;
            check_hresult(_winrt_abi_type->put_CalendarItemCornerRadius(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::IsBlackout() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsBlackout(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>**)this;
            check_hresult(_winrt_abi_type->get_IsBlackout(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::IsBlackout(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsBlackout(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>**)this;
            check_hresult(_winrt_abi_type->put_IsBlackout(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::Date() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Date(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>**)this;
            check_hresult(_winrt_abi_type->get_Date(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItem<D>::SetDensityColors(param::iterable<winrt::Windows::UI::Color> const& colors) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetDensityColors(*(void**)(&colors)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>**)this;
            check_hresult(_winrt_abi_type->SetDensityColors(*(void**)(&colors)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::InRecycleQueue() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InRecycleQueue(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_InRecycleQueue(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::Item() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::CalendarViewDayItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::Phase() const
    {
        uint32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Phase(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Phase(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::RegisterUpdateCallback(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarView, winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const& callback) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RegisterUpdateCallback(*(void**)(&callback)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->RegisterUpdateCallback(*(void**)(&callback)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemChangingEventArgs<D>::RegisterUpdateCallback(uint32_t callbackPhase, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarView, winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const& callback) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RegisterUpdateCallbackWithPhase(callbackPhase, *(void**)(&callback)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->RegisterUpdateCallbackWithPhase(callbackPhase, *(void**)(&callback)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::CalendarViewDayItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemStatics<D>::IsBlackoutProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsBlackoutProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsBlackoutProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewDayItemStatics<D>::DateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_DateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::CalendarView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewSelectedDatesChangedEventArgs<D>::AddedDates() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AddedDates(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_AddedDates(&value));
        }
        return winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewSelectedDatesChangedEventArgs<D>::RemovedDates() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RemovedDates(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_RemovedDates(&value));
        }
        return winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarIdentifierProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarIdentifierProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_CalendarIdentifierProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayOfWeekFormatProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayOfWeekFormatProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_DayOfWeekFormatProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::IsGroupLabelVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsGroupLabelVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsGroupLabelVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DisplayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_DisplayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstDayOfWeekProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstDayOfWeekProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_FirstDayOfWeekProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::IsOutOfScopeEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOutOfScopeEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsOutOfScopeEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::IsTodayHighlightedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTodayHighlightedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsTodayHighlightedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MaxDateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxDateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxDateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MinDateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinDateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinDateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::NumberOfWeeksInViewProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NumberOfWeeksInViewProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_NumberOfWeeksInViewProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedDatesProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedDatesProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedDatesProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectionModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectionModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::TemplateSettingsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettingsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettingsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FocusBorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FocusBorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_FocusBorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedHoverBorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedHoverBorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedHoverBorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedPressedBorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedPressedBorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedPressedBorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedBorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedBorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedBorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::HoverBorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HoverBorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_HoverBorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::PressedBorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PressedBorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_PressedBorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemBorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemBorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemBorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::OutOfScopeBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OutOfScopeBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_OutOfScopeBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::PressedForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PressedForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_PressedForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::TodayForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_TodayForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::BlackoutForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BlackoutForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_BlackoutForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::SelectedForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::OutOfScopeForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OutOfScopeForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_OutOfScopeForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontFamilyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayItemFontFamilyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_DayItemFontFamilyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayItemFontSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_DayItemFontSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayItemFontStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_DayItemFontStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::DayItemFontWeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayItemFontWeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_DayItemFontWeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::TodayFontWeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayFontWeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_TodayFontWeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontFamilyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontFamilyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontFamilyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfMonthLabelFontWeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontWeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelFontWeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontFamilyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontFamilyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontFamilyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::MonthYearItemFontWeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontWeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MonthYearItemFontWeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontFamilyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontFamilyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontFamilyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::FirstOfYearDecadeLabelFontWeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontWeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelFontWeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::HorizontalDayItemAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalDayItemAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalDayItemAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::VerticalDayItemAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalDayItemAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalDayItemAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::HorizontalFirstOfMonthLabelAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalFirstOfMonthLabelAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalFirstOfMonthLabelAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::VerticalFirstOfMonthLabelAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalFirstOfMonthLabelAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalFirstOfMonthLabelAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarItemBorderThicknessProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemBorderThicknessProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemBorderThicknessProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics<D>::CalendarViewDayItemStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarViewDayItemStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_CalendarViewDayItemStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::SelectedDisabledBorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedDisabledBorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SelectedDisabledBorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::TodaySelectedInnerBorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodaySelectedInnerBorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TodaySelectedInnerBorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::BlackoutStrikethroughBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BlackoutStrikethroughBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_BlackoutStrikethroughBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::BlackoutBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BlackoutBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_BlackoutBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::CalendarItemHoverBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemHoverBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemHoverBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::CalendarItemPressedBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemPressedBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemPressedBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::CalendarItemDisabledBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemDisabledBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemDisabledBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::TodayBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TodayBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::TodayBlackoutBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayBlackoutBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TodayBlackoutBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::TodayHoverBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayHoverBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TodayHoverBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::TodayPressedBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayPressedBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TodayPressedBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::TodayDisabledBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayDisabledBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TodayDisabledBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::TodayBlackoutForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TodayBlackoutForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TodayBlackoutForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::SelectedHoverForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedHoverForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SelectedHoverForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::SelectedPressedForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedPressedForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SelectedPressedForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::SelectedDisabledForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedDisabledForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SelectedDisabledForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::OutOfScopeHoverForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OutOfScopeHoverForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_OutOfScopeHoverForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::OutOfScopePressedForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OutOfScopePressedForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_OutOfScopePressedForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::DisabledForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisabledForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_DisabledForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::DayItemMarginProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayItemMarginProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_DayItemMarginProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::MonthYearItemMarginProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthYearItemMarginProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_MonthYearItemMarginProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::FirstOfMonthLabelMarginProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelMarginProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfMonthLabelMarginProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::FirstOfYearDecadeLabelMarginProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelMarginProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_FirstOfYearDecadeLabelMarginProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICalendarViewStatics2<D>::CalendarItemCornerRadiusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarItemCornerRadiusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CalendarItemCornerRadiusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICandidateWindowBoundsChangedEventArgs<D>::Bounds() const
    {
        winrt::Windows::Foundation::Rect value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Bounds(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Bounds(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICanvasFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICanvasFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::Canvas{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::LeftProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICanvasStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICanvasStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)this;
            check_hresult(_winrt_abi_type->get_LeftProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::GetLeft(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        double result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICanvasStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICanvasStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetLeft(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)this;
            check_hresult(_winrt_abi_type->GetLeft(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::SetLeft(winrt::Windows::UI::Xaml::UIElement const& element, double length) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICanvasStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICanvasStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetLeft(*(void**)(&element), length));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)this;
            check_hresult(_winrt_abi_type->SetLeft(*(void**)(&element), length));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::TopProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICanvasStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICanvasStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)this;
            check_hresult(_winrt_abi_type->get_TopProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::GetTop(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        double result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICanvasStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICanvasStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetTop(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)this;
            check_hresult(_winrt_abi_type->GetTop(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::SetTop(winrt::Windows::UI::Xaml::UIElement const& element, double length) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICanvasStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICanvasStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetTop(*(void**)(&element), length));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)this;
            check_hresult(_winrt_abi_type->SetTop(*(void**)(&element), length));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::ZIndexProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICanvasStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICanvasStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZIndexProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)this;
            check_hresult(_winrt_abi_type->get_ZIndexProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::GetZIndex(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICanvasStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICanvasStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetZIndex(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)this;
            check_hresult(_winrt_abi_type->GetZIndex(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICanvasStatics<D>::SetZIndex(winrt::Windows::UI::Xaml::UIElement const& element, int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICanvasStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICanvasStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetZIndex(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICanvasStatics>**)this;
            check_hresult(_winrt_abi_type->SetZIndex(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Source() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICaptureElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICaptureElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElement>**)this;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        return winrt::Windows::Media::Capture::MediaCapture{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Source(winrt::Windows::Media::Capture::MediaCapture const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICaptureElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICaptureElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElement>**)this;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Stretch() const
    {
        winrt::Windows::UI::Xaml::Media::Stretch value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICaptureElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICaptureElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElement>**)this;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElement<D>::Stretch(winrt::Windows::UI::Xaml::Media::Stretch const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICaptureElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICaptureElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElement>**)this;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElementStatics<D>::SourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICaptureElementStatics<D>::StretchProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICheckBoxFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICheckBoxFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICheckBoxFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICheckBoxFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICheckBoxFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::CheckBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::GroupHeaderContainer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupHeaderContainer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_GroupHeaderContainer(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ListViewBaseHeaderItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::GroupHeaderContainer(winrt::Windows::UI::Xaml::Controls::ListViewBaseHeaderItem const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_GroupHeaderContainer(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_GroupHeaderContainer(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::GroupIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_GroupIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingGroupHeaderContainerEventArgs<D>::Group() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Group(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Group(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::ItemIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_ItemIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::Item() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::ItemContainer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainer(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::ItemContainer(winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemContainer(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_ItemContainer(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::IsContainerPrepared() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsContainerPrepared(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_IsContainerPrepared(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IChoosingItemContainerEventArgs<D>::IsContainerPrepared(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsContainerPrepared(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_IsContainerPrepared(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::Value() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Value(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Value(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::UIElement() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UIElement(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_UIElement(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::Cancel() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICleanUpVirtualizedItemEventArgs<D>::Cancel(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorChangedEventArgs<D>::OldColor() const
    {
        winrt::Windows::UI::Color value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OldColor(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_OldColor(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorChangedEventArgs<D>::NewColor() const
    {
        winrt::Windows::UI::Color value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NewColor(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_NewColor(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::Color() const
    {
        winrt::Windows::UI::Color value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Color(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_Color(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::Color(winrt::Windows::UI::Color const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Color(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_Color(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::PreviousColor() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PreviousColor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_PreviousColor(&value));
        }
        return winrt::Windows::Foundation::IReference<winrt::Windows::UI::Color>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::PreviousColor(winrt::Windows::Foundation::IReference<winrt::Windows::UI::Color> const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PreviousColor(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_PreviousColor(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsAlphaEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_IsAlphaEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsAlphaEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_IsAlphaEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSpectrumVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorSpectrumVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_IsColorSpectrumVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSpectrumVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsColorSpectrumVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_IsColorSpectrumVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorPreviewVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorPreviewVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_IsColorPreviewVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorPreviewVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsColorPreviewVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_IsColorPreviewVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSliderVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorSliderVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_IsColorSliderVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorSliderVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsColorSliderVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_IsColorSliderVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaSliderVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsAlphaSliderVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_IsAlphaSliderVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaSliderVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsAlphaSliderVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_IsAlphaSliderVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsMoreButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsMoreButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_IsMoreButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsMoreButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsMoreButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_IsMoreButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorChannelTextInputVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorChannelTextInputVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_IsColorChannelTextInputVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsColorChannelTextInputVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsColorChannelTextInputVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_IsColorChannelTextInputVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaTextInputVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsAlphaTextInputVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_IsAlphaTextInputVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsAlphaTextInputVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsAlphaTextInputVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_IsAlphaTextInputVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsHexInputVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHexInputVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_IsHexInputVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::IsHexInputVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsHexInputVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_IsHexInputVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinHue() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinHue(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_MinHue(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinHue(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinHue(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_MinHue(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxHue() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxHue(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_MaxHue(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxHue(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxHue(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_MaxHue(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinSaturation() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinSaturation(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_MinSaturation(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinSaturation(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinSaturation(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_MinSaturation(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxSaturation() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxSaturation(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_MaxSaturation(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxSaturation(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxSaturation(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_MaxSaturation(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinValue() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinValue(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_MinValue(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MinValue(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinValue(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_MinValue(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxValue() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxValue(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_MaxValue(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::MaxValue(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxValue(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_MaxValue(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumShape() const
    {
        winrt::Windows::UI::Xaml::Controls::ColorSpectrumShape value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColorSpectrumShape(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_ColorSpectrumShape(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumShape(winrt::Windows::UI::Xaml::Controls::ColorSpectrumShape const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ColorSpectrumShape(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_ColorSpectrumShape(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumComponents() const
    {
        winrt::Windows::UI::Xaml::Controls::ColorSpectrumComponents value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColorSpectrumComponents(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->get_ColorSpectrumComponents(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorSpectrumComponents(winrt::Windows::UI::Xaml::Controls::ColorSpectrumComponents const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ColorSpectrumComponents(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->put_ColorSpectrumComponents(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ColorPicker, winrt::Windows::UI::Xaml::Controls::ColorChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ColorChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            check_hresult(_winrt_abi_type->add_ColorChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ColorPicker, winrt::Windows::UI::Xaml::Controls::ColorChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ColorChanged_revoker>(this, ColorChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPicker<D>::ColorChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ColorChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPicker>**)this;
            _winrt_abi_type->remove_ColorChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ColorPicker{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::ColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ColorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::PreviousColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PreviousColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_PreviousColorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsAlphaEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsAlphaEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsAlphaEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorSpectrumVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorSpectrumVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsColorSpectrumVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorPreviewVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorPreviewVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsColorPreviewVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorSliderVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorSliderVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsColorSliderVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsAlphaSliderVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsAlphaSliderVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsAlphaSliderVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsMoreButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsMoreButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsMoreButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsColorChannelTextInputVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorChannelTextInputVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsColorChannelTextInputVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsAlphaTextInputVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsAlphaTextInputVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsAlphaTextInputVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::IsHexInputVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHexInputVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsHexInputVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MinHueProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinHueProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinHueProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MaxHueProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxHueProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxHueProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MinSaturationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinSaturationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinSaturationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MaxSaturationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxSaturationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxSaturationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MinValueProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinValueProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinValueProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::MaxValueProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxValueProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxValueProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::ColorSpectrumShapeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColorSpectrumShapeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ColorSpectrumShapeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColorPickerStatics<D>::ColorSpectrumComponentsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColorSpectrumComponentsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ColorSpectrumComponentsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::Width() const
    {
        winrt::Windows::UI::Xaml::GridLength value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColumnDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Width(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)this;
            check_hresult(_winrt_abi_type->get_Width(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::Width(winrt::Windows::UI::Xaml::GridLength const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColumnDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Width(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)this;
            check_hresult(_winrt_abi_type->put_Width(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MaxWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColumnDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)this;
            check_hresult(_winrt_abi_type->get_MaxWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MaxWidth(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColumnDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxWidth(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)this;
            check_hresult(_winrt_abi_type->put_MaxWidth(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MinWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColumnDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)this;
            check_hresult(_winrt_abi_type->get_MinWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::MinWidth(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColumnDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinWidth(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)this;
            check_hresult(_winrt_abi_type->put_MinWidth(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinition<D>::ActualWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColumnDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ActualWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinition>**)this;
            check_hresult(_winrt_abi_type->get_ActualWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinitionStatics<D>::WidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_WidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics>**)this;
            check_hresult(_winrt_abi_type->get_WidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinitionStatics<D>::MaxWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IColumnDefinitionStatics<D>::MinWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsDropDownOpen() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDropDownOpen(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            check_hresult(_winrt_abi_type->get_IsDropDownOpen(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsDropDownOpen(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsDropDownOpen(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            check_hresult(_winrt_abi_type->put_IsDropDownOpen(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsEditable() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsEditable(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            check_hresult(_winrt_abi_type->get_IsEditable(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::IsSelectionBoxHighlighted() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSelectionBoxHighlighted(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            check_hresult(_winrt_abi_type->get_IsSelectionBoxHighlighted(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::MaxDropDownHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxDropDownHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            check_hresult(_winrt_abi_type->get_MaxDropDownHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::MaxDropDownHeight(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxDropDownHeight(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            check_hresult(_winrt_abi_type->put_MaxDropDownHeight(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::SelectionBoxItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionBoxItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            check_hresult(_winrt_abi_type->get_SelectionBoxItem(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::SelectionBoxItemTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionBoxItemTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            check_hresult(_winrt_abi_type->get_SelectionBoxItemTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::ComboBoxTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed(winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DropDownClosed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            check_hresult(_winrt_abi_type->add_DropDownClosed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, DropDownClosed_revoker>(this, DropDownClosed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownClosed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DropDownClosed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            _winrt_abi_type->remove_DropDownClosed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened(winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DropDownOpened(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            check_hresult(_winrt_abi_type->add_DropDownOpened(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, DropDownOpened_revoker>(this, DropDownOpened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox<D>::DropDownOpened(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DropDownOpened(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox>**)this;
            _winrt_abi_type->remove_DropDownOpened(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::PlaceholderText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox2<D>::PlaceholderText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox2>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox3<D>::LightDismissOverlayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox3>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox3<D>::LightDismissOverlayMode(winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox3>**)this;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox3<D>::IsTextSearchEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextSearchEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox3>**)this;
            check_hresult(_winrt_abi_type->get_IsTextSearchEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox3<D>::IsTextSearchEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTextSearchEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox3>**)this;
            check_hresult(_winrt_abi_type->put_IsTextSearchEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox4<D>::SelectionChangedTrigger() const
    {
        winrt::Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionChangedTrigger(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox4>**)this;
            check_hresult(_winrt_abi_type->get_SelectionChangedTrigger(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox4<D>::SelectionChangedTrigger(winrt::Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionChangedTrigger(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox4>**)this;
            check_hresult(_winrt_abi_type->put_SelectionChangedTrigger(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox5<D>::PlaceholderForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox5>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox5<D>::PlaceholderForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox5>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::IsEditable(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsEditable(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)this;
            check_hresult(_winrt_abi_type->put_IsEditable(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Text() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)this;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Text(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)this;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextBoxStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextBoxStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)this;
            check_hresult(_winrt_abi_type->get_TextBoxStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextBoxStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextBoxStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)this;
            check_hresult(_winrt_abi_type->put_TextBoxStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Description() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)this;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::Description(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)this;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextSubmitted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ComboBox, winrt::Windows::UI::Xaml::Controls::ComboBoxTextSubmittedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextSubmitted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)this;
            check_hresult(_winrt_abi_type->add_TextSubmitted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextSubmitted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ComboBox, winrt::Windows::UI::Xaml::Controls::ComboBoxTextSubmittedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextSubmitted_revoker>(this, TextSubmitted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBox6<D>::TextSubmitted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextSubmitted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBox6>**)this;
            _winrt_abi_type->remove_TextSubmitted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ComboBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ComboBoxItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxOverrides<D>::OnDropDownClosed(winrt::Windows::Foundation::IInspectable const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnDropDownClosed(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides>**)this;
            check_hresult(_winrt_abi_type->OnDropDownClosed(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxOverrides<D>::OnDropDownOpened(winrt::Windows::Foundation::IInspectable const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnDropDownOpened(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides>**)this;
            check_hresult(_winrt_abi_type->OnDropDownOpened(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics<D>::IsDropDownOpenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDropDownOpenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsDropDownOpenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics<D>::MaxDropDownHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxDropDownHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxDropDownHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics2<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics2<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics2<D>::PlaceholderTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics3<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics3<D>::IsTextSearchEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextSearchEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsTextSearchEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics4<D>::SelectionChangedTriggerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionChangedTriggerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics4>**)this;
            check_hresult(_winrt_abi_type->get_SelectionChangedTriggerProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics5<D>::PlaceholderForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics5>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::IsEditableProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsEditableProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>**)this;
            check_hresult(_winrt_abi_type->get_IsEditableProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::TextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>**)this;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::TextBoxStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextBoxStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>**)this;
            check_hresult(_winrt_abi_type->get_TextBoxStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxStatics6<D>::DescriptionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>**)this;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxTextSubmittedEventArgs<D>::Text() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxTextSubmittedEventArgs<D>::Handled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IComboBoxTextSubmittedEventArgs<D>::Handled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar<D>::PrimaryCommands() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryCommands(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryCommands(&value));
        }
        return winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar<D>::SecondaryCommands() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryCommands(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryCommands(&value));
        }
        return winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar2<D>::CommandBarOverflowPresenterStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandBarOverflowPresenterStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar2>**)this;
            check_hresult(_winrt_abi_type->get_CommandBarOverflowPresenterStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar2<D>::CommandBarOverflowPresenterStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CommandBarOverflowPresenterStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar2>**)this;
            check_hresult(_winrt_abi_type->put_CommandBarOverflowPresenterStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar2<D>::CommandBarTemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandBarTemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar2>**)this;
            check_hresult(_winrt_abi_type->get_CommandBarTemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::CommandBarTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DefaultLabelPosition() const
    {
        winrt::Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultLabelPosition(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)this;
            check_hresult(_winrt_abi_type->get_DefaultLabelPosition(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DefaultLabelPosition(winrt::Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DefaultLabelPosition(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)this;
            check_hresult(_winrt_abi_type->put_DefaultLabelPosition(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::OverflowButtonVisibility() const
    {
        winrt::Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OverflowButtonVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)this;
            check_hresult(_winrt_abi_type->get_OverflowButtonVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::OverflowButtonVisibility(winrt::Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OverflowButtonVisibility(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)this;
            check_hresult(_winrt_abi_type->put_OverflowButtonVisibility(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::IsDynamicOverflowEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDynamicOverflowEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)this;
            check_hresult(_winrt_abi_type->get_IsDynamicOverflowEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::IsDynamicOverflowEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsDynamicOverflowEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)this;
            check_hresult(_winrt_abi_type->put_IsDynamicOverflowEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DynamicOverflowItemsChanging(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CommandBar, winrt::Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DynamicOverflowItemsChanging(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)this;
            check_hresult(_winrt_abi_type->add_DynamicOverflowItemsChanging(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DynamicOverflowItemsChanging(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CommandBar, winrt::Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DynamicOverflowItemsChanging_revoker>(this, DynamicOverflowItemsChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBar3<D>::DynamicOverflowItemsChanging(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DynamicOverflowItemsChanging(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBar3>**)this;
            _winrt_abi_type->remove_DynamicOverflowItemsChanging(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarElement<D>::IsCompact() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCompact(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>**)this;
            check_hresult(_winrt_abi_type->get_IsCompact(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarElement<D>::IsCompact(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsCompact(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>**)this;
            check_hresult(_winrt_abi_type->put_IsCompact(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarElement2<D>::IsInOverflow() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsInOverflow(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2>**)this;
            check_hresult(_winrt_abi_type->get_IsInOverflow(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarElement2<D>::DynamicOverflowOrder() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DynamicOverflowOrder(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2>**)this;
            check_hresult(_winrt_abi_type->get_DynamicOverflowOrder(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarElement2<D>::DynamicOverflowOrder(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DynamicOverflowOrder(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2>**)this;
            check_hresult(_winrt_abi_type->put_DynamicOverflowOrder(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::CommandBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarFlyout<D>::PrimaryCommands() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryCommands(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryCommands(&value));
        }
        return winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarFlyout<D>::SecondaryCommands() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryCommands(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryCommands(&value));
        }
        return winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarFlyoutFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::CommandBarFlyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarOverflowPresenterFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::CommandBarOverflowPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics<D>::PrimaryCommandsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryCommandsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryCommandsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics<D>::SecondaryCommandsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryCommandsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryCommandsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics2<D>::CommandBarOverflowPresenterStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandBarOverflowPresenterStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CommandBarOverflowPresenterStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics3<D>::DefaultLabelPositionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultLabelPositionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3>**)this;
            check_hresult(_winrt_abi_type->get_DefaultLabelPositionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics3<D>::OverflowButtonVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OverflowButtonVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3>**)this;
            check_hresult(_winrt_abi_type->get_OverflowButtonVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ICommandBarStatics3<D>::IsDynamicOverflowEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDynamicOverflowEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsDynamicOverflowEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::ItemContainer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainer(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::InRecycleQueue() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InRecycleQueue(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_InRecycleQueue(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::ItemIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_ItemIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Item() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Phase() const
    {
        uint32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Phase(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Phase(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Handled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::Handled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::RegisterUpdateCallback(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const& callback) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RegisterUpdateCallback(*(void**)(&callback)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->RegisterUpdateCallback(*(void**)(&callback)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContainerContentChangingEventArgs<D>::RegisterUpdateCallback(uint32_t callbackPhase, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const& callback) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RegisterUpdateCallbackWithPhase(callbackPhase, *(void**)(&callback)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->RegisterUpdateCallbackWithPhase(callbackPhase, *(void**)(&callback)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::Content() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)this;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::Content(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)this;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)this;
            check_hresult(_winrt_abi_type->get_ContentTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContentTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)this;
            check_hresult(_winrt_abi_type->put_ContentTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplateSelector() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTemplateSelector(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)this;
            check_hresult(_winrt_abi_type->get_ContentTemplateSelector(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTemplateSelector(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContentTemplateSelector(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)this;
            check_hresult(_winrt_abi_type->put_ContentTemplateSelector(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTransitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTransitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)this;
            check_hresult(_winrt_abi_type->get_ContentTransitions(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl<D>::ContentTransitions(winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContentTransitions(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl>**)this;
            check_hresult(_winrt_abi_type->put_ContentTransitions(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControl2<D>::ContentTemplateRoot() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControl2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControl2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTemplateRoot(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControl2>**)this;
            check_hresult(_winrt_abi_type->get_ContentTemplateRoot(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControlFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControlFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ContentControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlOverrides<D>::OnContentChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnContentChanged(*(void**)(&oldContent), *(void**)(&newContent)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnContentChanged(*(void**)(&oldContent), *(void**)(&newContent)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlOverrides<D>::OnContentTemplateChanged(winrt::Windows::UI::Xaml::DataTemplate const& oldContentTemplate, winrt::Windows::UI::Xaml::DataTemplate const& newContentTemplate) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnContentTemplateChanged(*(void**)(&oldContentTemplate), *(void**)(&newContentTemplate)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnContentTemplateChanged(*(void**)(&oldContentTemplate), *(void**)(&newContentTemplate)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlOverrides<D>::OnContentTemplateSelectorChanged(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnContentTemplateSelectorChanged(*(void**)(&oldContentTemplateSelector), *(void**)(&newContentTemplateSelector)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnContentTemplateSelectorChanged(*(void**)(&oldContentTemplateSelector), *(void**)(&newContentTemplateSelector)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentTemplateSelectorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTemplateSelectorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentTemplateSelectorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentControlStatics<D>::ContentTransitionsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTransitionsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentTransitionsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Title() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Title(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->get_Title(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Title(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Title(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->put_Title(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::TitleTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TitleTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->get_TitleTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::TitleTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TitleTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->put_TitleTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::FullSizeDesired() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FullSizeDesired(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->get_FullSizeDesired(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::FullSizeDesired(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FullSizeDesired(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->put_FullSizeDesired(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryButtonText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryButtonText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PrimaryButtonText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->put_PrimaryButtonText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryButtonText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryButtonText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SecondaryButtonText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->put_SecondaryButtonText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommand() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryButtonCommand(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryButtonCommand(&value));
        }
        return winrt::Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommand(winrt::Windows::UI::Xaml::Input::ICommand const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PrimaryButtonCommand(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->put_PrimaryButtonCommand(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommand() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryButtonCommand(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryButtonCommand(&value));
        }
        return winrt::Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommand(winrt::Windows::UI::Xaml::Input::ICommand const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SecondaryButtonCommand(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->put_SecondaryButtonCommand(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommandParameter() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryButtonCommandParameter(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryButtonCommandParameter(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonCommandParameter(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PrimaryButtonCommandParameter(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->put_PrimaryButtonCommandParameter(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommandParameter() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryButtonCommandParameter(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryButtonCommandParameter(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonCommandParameter(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SecondaryButtonCommandParameter(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->put_SecondaryButtonCommandParameter(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsPrimaryButtonEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPrimaryButtonEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->get_IsPrimaryButtonEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsPrimaryButtonEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsPrimaryButtonEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->put_IsPrimaryButtonEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsSecondaryButtonEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSecondaryButtonEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->get_IsSecondaryButtonEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::IsSecondaryButtonEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSecondaryButtonEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->put_IsSecondaryButtonEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closing(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Closing(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->add_Closing(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closing(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Closing_revoker>(this, Closing(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closing(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Closing(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            _winrt_abi_type->remove_Closing(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closed(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Closed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->add_Closed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Closed_revoker>(this, Closed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Closed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Closed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            _winrt_abi_type->remove_Closed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Opened(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Opened(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->add_Opened(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Opened(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Opened_revoker>(this, Opened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Opened(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Opened(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            _winrt_abi_type->remove_Opened(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonClick(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PrimaryButtonClick(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->add_PrimaryButtonClick(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonClick(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PrimaryButtonClick_revoker>(this, PrimaryButtonClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::PrimaryButtonClick(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PrimaryButtonClick(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            _winrt_abi_type->remove_PrimaryButtonClick(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonClick(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SecondaryButtonClick(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->add_SecondaryButtonClick(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonClick(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SecondaryButtonClick_revoker>(this, SecondaryButtonClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::SecondaryButtonClick(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SecondaryButtonClick(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            _winrt_abi_type->remove_SecondaryButtonClick(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::Hide() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Hide());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->Hide());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog<D>::ShowAsync() const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ShowAsync(&operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog>**)this;
            check_hresult(_winrt_abi_type->ShowAsync(&operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::UI::Xaml::Controls::ContentDialogResult>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CloseButtonText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->get_CloseButtonText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CloseButtonText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->put_CloseButtonText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommand() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CloseButtonCommand(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->get_CloseButtonCommand(&value));
        }
        return winrt::Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommand(winrt::Windows::UI::Xaml::Input::ICommand const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CloseButtonCommand(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->put_CloseButtonCommand(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommandParameter() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CloseButtonCommandParameter(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->get_CloseButtonCommandParameter(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonCommandParameter(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CloseButtonCommandParameter(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->put_CloseButtonCommandParameter(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::PrimaryButtonStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryButtonStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryButtonStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::PrimaryButtonStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PrimaryButtonStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->put_PrimaryButtonStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::SecondaryButtonStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryButtonStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryButtonStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::SecondaryButtonStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SecondaryButtonStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->put_SecondaryButtonStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CloseButtonStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->get_CloseButtonStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CloseButtonStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->put_CloseButtonStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::DefaultButton() const
    {
        winrt::Windows::UI::Xaml::Controls::ContentDialogButton value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultButton(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->get_DefaultButton(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::DefaultButton(winrt::Windows::UI::Xaml::Controls::ContentDialogButton const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DefaultButton(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->put_DefaultButton(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonClick(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CloseButtonClick(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            check_hresult(_winrt_abi_type->add_CloseButtonClick(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonClick(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CloseButtonClick_revoker>(this, CloseButtonClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog2<D>::CloseButtonClick(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CloseButtonClick(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog2>**)this;
            _winrt_abi_type->remove_CloseButtonClick(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialog3<D>::ShowAsync(winrt::Windows::UI::Xaml::Controls::ContentDialogPlacement const& placement) const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialog3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialog3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ShowAsyncWithPlacement(static_cast<int32_t>(placement), &operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialog3>**)this;
            check_hresult(_winrt_abi_type->ShowAsyncWithPlacement(static_cast<int32_t>(placement), &operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::UI::Xaml::Controls::ContentDialogResult>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickDeferral<D>::Complete() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Complete());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral>**)this;
            check_hresult(_winrt_abi_type->Complete());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickEventArgs<D>::Cancel() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickEventArgs<D>::Cancel(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogButtonClickEventArgs<D>::GetDeferral() const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetDeferral(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>**)this;
            check_hresult(_winrt_abi_type->GetDeferral(&result));
        }
        return winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickDeferral{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosedEventArgs<D>::Result() const
    {
        winrt::Windows::UI::Xaml::Controls::ContentDialogResult value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Result(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Result(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosingDeferral<D>::Complete() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosingDeferral>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingDeferral, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingDeferral>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Complete());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingDeferral>**)this;
            check_hresult(_winrt_abi_type->Complete());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::Result() const
    {
        winrt::Windows::UI::Xaml::Controls::ContentDialogResult value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Result(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Result(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::Cancel() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::Cancel(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogClosingEventArgs<D>::GetDeferral() const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetDeferral(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>**)this;
            check_hresult(_winrt_abi_type->GetDeferral(&result));
        }
        return winrt::Windows::UI::Xaml::Controls::ContentDialogClosingDeferral{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ContentDialog{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::TitleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TitleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)this;
            check_hresult(_winrt_abi_type->get_TitleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::TitleTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TitleTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)this;
            check_hresult(_winrt_abi_type->get_TitleTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::FullSizeDesiredProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FullSizeDesiredProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)this;
            check_hresult(_winrt_abi_type->get_FullSizeDesiredProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::PrimaryButtonTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryButtonTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryButtonTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::SecondaryButtonTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryButtonTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryButtonTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::PrimaryButtonCommandProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryButtonCommandProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryButtonCommandProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::SecondaryButtonCommandProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryButtonCommandProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryButtonCommandProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::PrimaryButtonCommandParameterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryButtonCommandParameterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryButtonCommandParameterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::SecondaryButtonCommandParameterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryButtonCommandParameterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryButtonCommandParameterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::IsPrimaryButtonEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPrimaryButtonEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsPrimaryButtonEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics<D>::IsSecondaryButtonEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSecondaryButtonEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsSecondaryButtonEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CloseButtonTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CloseButtonTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonCommandProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CloseButtonCommandProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CloseButtonCommandProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonCommandParameterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CloseButtonCommandParameterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CloseButtonCommandParameterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::PrimaryButtonStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryButtonStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryButtonStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::SecondaryButtonStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryButtonStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryButtonStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::CloseButtonStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CloseButtonStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CloseButtonStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentDialogStatics2<D>::DefaultButtonProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultButtonProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>**)this;
            check_hresult(_winrt_abi_type->get_DefaultButtonProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentLinkChangedEventArgs<D>::ChangeKind() const
    {
        winrt::Windows::UI::Xaml::Controls::ContentLinkChangeKind value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ChangeKind(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_ChangeKind(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentLinkChangedEventArgs<D>::ContentLinkInfo() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentLinkInfo(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_ContentLinkInfo(&value));
        }
        return winrt::Windows::UI::Text::ContentLinkInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentLinkChangedEventArgs<D>::TextRange() const
    {
        winrt::Windows::UI::Xaml::Documents::TextRange value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextRange(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_TextRange(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Content() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Content(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_ContentTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContentTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_ContentTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplateSelector() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTemplateSelector(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_ContentTemplateSelector(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTemplateSelector(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContentTemplateSelector(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_ContentTemplateSelector(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTransitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTransitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_ContentTransitions(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::ContentTransitions(winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContentTransitions(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_ContentTransitions(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontFamily() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        return winrt::Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontFamily(winrt::Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontWeight() const
    {
        winrt::Windows::UI::Text::FontWeight value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontWeight(winrt::Windows::UI::Text::FontWeight const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStyle() const
    {
        winrt::Windows::UI::Text::FontStyle value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStyle(winrt::Windows::UI::Text::FontStyle const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStretch() const
    {
        winrt::Windows::UI::Text::FontStretch value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStretch(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_FontStretch(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::FontStretch(winrt::Windows::UI::Text::FontStretch const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontStretch(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_FontStretch(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::CharacterSpacing() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterSpacing(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_CharacterSpacing(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::CharacterSpacing(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CharacterSpacing(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_CharacterSpacing(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Foreground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter<D>::Foreground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::OpticalMarginAlignment() const
    {
        winrt::Windows::UI::Xaml::OpticalMarginAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter2>**)this;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::OpticalMarginAlignment(winrt::Windows::UI::Xaml::OpticalMarginAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OpticalMarginAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter2>**)this;
            check_hresult(_winrt_abi_type->put_OpticalMarginAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::TextLineBounds() const
    {
        winrt::Windows::UI::Xaml::TextLineBounds value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextLineBounds(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter2>**)this;
            check_hresult(_winrt_abi_type->get_TextLineBounds(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter2<D>::TextLineBounds(winrt::Windows::UI::Xaml::TextLineBounds const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextLineBounds(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter2>**)this;
            check_hresult(_winrt_abi_type->put_TextLineBounds(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter3<D>::IsTextScaleFactorEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter3>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter3<D>::IsTextScaleFactorEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter3>**)this;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::TextWrapping() const
    {
        winrt::Windows::UI::Xaml::TextWrapping value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextWrapping(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->get_TextWrapping(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::TextWrapping(winrt::Windows::UI::Xaml::TextWrapping const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextWrapping(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->put_TextWrapping(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::MaxLines() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLines(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->get_MaxLines(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::MaxLines(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxLines(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->put_MaxLines(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineStackingStrategy() const
    {
        winrt::Windows::UI::Xaml::LineStackingStrategy value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineStackingStrategy(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->get_LineStackingStrategy(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineStackingStrategy(winrt::Windows::UI::Xaml::LineStackingStrategy const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LineStackingStrategy(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->put_LineStackingStrategy(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->get_LineHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::LineHeight(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LineHeight(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->put_LineHeight(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderThickness() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::BorderThickness(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::CornerRadius() const
    {
        winrt::Windows::UI::Xaml::CornerRadius value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::CornerRadius(winrt::Windows::UI::Xaml::CornerRadius const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Padding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Padding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Background() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Background(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->get_Background(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::Background(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Background(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->put_Background(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::HorizontalContentAlignment() const
    {
        winrt::Windows::UI::Xaml::HorizontalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalContentAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalContentAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::HorizontalContentAlignment(winrt::Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalContentAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalContentAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::VerticalContentAlignment() const
    {
        winrt::Windows::UI::Xaml::VerticalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalContentAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->get_VerticalContentAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter4<D>::VerticalContentAlignment(winrt::Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalContentAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter4>**)this;
            check_hresult(_winrt_abi_type->put_VerticalContentAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundTransition() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundTransition(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter5>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundTransition(&value));
        }
        return winrt::Windows::UI::Xaml::BrushTransition{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundTransition(winrt::Windows::UI::Xaml::BrushTransition const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BackgroundTransition(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter5>**)this;
            check_hresult(_winrt_abi_type->put_BackgroundTransition(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundSizing() const
    {
        winrt::Windows::UI::Xaml::Controls::BackgroundSizing value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter5>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenter5<D>::BackgroundSizing(winrt::Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenter5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenter5>**)this;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ContentPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterOverrides<D>::OnContentTemplateChanged(winrt::Windows::UI::Xaml::DataTemplate const& oldContentTemplate, winrt::Windows::UI::Xaml::DataTemplate const& newContentTemplate) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnContentTemplateChanged(*(void**)(&oldContentTemplate), *(void**)(&newContentTemplate)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides>**)this;
            check_hresult(_winrt_abi_type->OnContentTemplateChanged(*(void**)(&oldContentTemplate), *(void**)(&newContentTemplate)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterOverrides<D>::OnContentTemplateSelectorChanged(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnContentTemplateSelectorChanged(*(void**)(&oldContentTemplateSelector), *(void**)(&newContentTemplateSelector)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides>**)this;
            check_hresult(_winrt_abi_type->OnContentTemplateSelectorChanged(*(void**)(&oldContentTemplateSelector), *(void**)(&newContentTemplateSelector)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentTemplateSelectorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTemplateSelectorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentTemplateSelectorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ContentTransitionsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTransitionsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentTransitionsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontWeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::FontStretchProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStretchProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontStretchProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::CharacterSpacingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterSpacingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_CharacterSpacingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics<D>::ForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics2<D>::OpticalMarginAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2>**)this;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics2<D>::TextLineBoundsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextLineBoundsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TextLineBoundsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics3<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::TextWrappingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextWrappingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)this;
            check_hresult(_winrt_abi_type->get_TextWrappingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::MaxLinesProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLinesProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)this;
            check_hresult(_winrt_abi_type->get_MaxLinesProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::LineStackingStrategyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineStackingStrategyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)this;
            check_hresult(_winrt_abi_type->get_LineStackingStrategyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::LineHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)this;
            check_hresult(_winrt_abi_type->get_LineHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::BorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::BorderThicknessProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)this;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::CornerRadiusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::PaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)this;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::BackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::HorizontalContentAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalContentAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalContentAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics4<D>::VerticalContentAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalContentAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>**)this;
            check_hresult(_winrt_abi_type->get_VerticalContentAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContentPresenterStatics5<D>::BackgroundSizingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics5>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::Handled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::Handled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::CursorLeft() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CursorLeft(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_CursorLeft(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IContextMenuEventArgs<D>::CursorTop() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CursorTop(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_CursorTop(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontFamily() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        return winrt::Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontFamily(winrt::Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontWeight() const
    {
        winrt::Windows::UI::Text::FontWeight value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontWeight(winrt::Windows::UI::Text::FontWeight const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontStyle() const
    {
        winrt::Windows::UI::Text::FontStyle value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontStyle(winrt::Windows::UI::Text::FontStyle const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontStretch() const
    {
        winrt::Windows::UI::Text::FontStretch value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStretch(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_FontStretch(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FontStretch(winrt::Windows::UI::Text::FontStretch const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontStretch(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_FontStretch(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::CharacterSpacing() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterSpacing(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_CharacterSpacing(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::CharacterSpacing(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CharacterSpacing(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_CharacterSpacing(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Foreground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Foreground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsTabStop() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTabStop(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_IsTabStop(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsTabStop(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTabStop(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_IsTabStop(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_IsEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_IsEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::TabIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TabIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_TabIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::TabIndex(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TabIndex(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_TabIndex(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::TabNavigation() const
    {
        winrt::Windows::UI::Xaml::Input::KeyboardNavigationMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TabNavigation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_TabNavigation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::TabNavigation(winrt::Windows::UI::Xaml::Input::KeyboardNavigationMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TabNavigation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_TabNavigation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Template() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Template(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_Template(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ControlTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Template(winrt::Windows::UI::Xaml::Controls::ControlTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Template(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_Template(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Padding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Padding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::HorizontalContentAlignment() const
    {
        winrt::Windows::UI::Xaml::HorizontalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalContentAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalContentAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::HorizontalContentAlignment(winrt::Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalContentAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalContentAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::VerticalContentAlignment() const
    {
        winrt::Windows::UI::Xaml::VerticalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalContentAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_VerticalContentAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::VerticalContentAlignment(winrt::Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalContentAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_VerticalContentAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Background() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Background(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_Background(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Background(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Background(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_Background(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::BorderThickness() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::BorderThickness(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::BorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::BorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::FocusState() const
    {
        winrt::Windows::UI::Xaml::FocusState value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FocusState(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->get_FocusState(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged(winrt::Windows::UI::Xaml::DependencyPropertyChangedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_IsEnabledChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->add_IsEnabledChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged(auto_revoke_t, winrt::Windows::UI::Xaml::DependencyPropertyChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, IsEnabledChanged_revoker>(this, IsEnabledChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::IsEnabledChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            _winrt_abi_type->remove_IsEnabledChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            _winrt_abi_type->remove_IsEnabledChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::ApplyTemplate() const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ApplyTemplate(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->ApplyTemplate(&result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl<D>::Focus(winrt::Windows::UI::Xaml::FocusState const& value) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Focus(static_cast<int32_t>(value), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl>**)this;
            check_hresult(_winrt_abi_type->Focus(static_cast<int32_t>(value), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl2<D>::IsTextScaleFactorEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl2>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl2<D>::IsTextScaleFactorEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl2>**)this;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl3<D>::UseSystemFocusVisuals() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UseSystemFocusVisuals(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl3>**)this;
            check_hresult(_winrt_abi_type->get_UseSystemFocusVisuals(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl3<D>::UseSystemFocusVisuals(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_UseSystemFocusVisuals(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl3>**)this;
            check_hresult(_winrt_abi_type->put_UseSystemFocusVisuals(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngagementEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFocusEngagementEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->get_IsFocusEngagementEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngagementEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsFocusEngagementEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->put_IsFocusEngagementEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngaged() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFocusEngaged(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->get_IsFocusEngaged(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::IsFocusEngaged(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsFocusEngaged(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->put_IsFocusEngaged(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::RequiresPointer() const
    {
        winrt::Windows::UI::Xaml::Controls::RequiresPointer value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RequiresPointer(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->get_RequiresPointer(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::RequiresPointer(winrt::Windows::UI::Xaml::Controls::RequiresPointer const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_RequiresPointer(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->put_RequiresPointer(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusLeft() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusLeft(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusLeft(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusLeft(winrt::Windows::UI::Xaml::DependencyObject const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_XYFocusLeft(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->put_XYFocusLeft(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusRight() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusRight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusRight(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusRight(winrt::Windows::UI::Xaml::DependencyObject const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_XYFocusRight(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->put_XYFocusRight(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusUp() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusUp(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusUp(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusUp(winrt::Windows::UI::Xaml::DependencyObject const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_XYFocusUp(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->put_XYFocusUp(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusDown() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusDown(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusDown(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::XYFocusDown(winrt::Windows::UI::Xaml::DependencyObject const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_XYFocusDown(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->put_XYFocusDown(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::ElementSoundMode() const
    {
        winrt::Windows::UI::Xaml::ElementSoundMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ElementSoundMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->get_ElementSoundMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::ElementSoundMode(winrt::Windows::UI::Xaml::ElementSoundMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ElementSoundMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->put_ElementSoundMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusEngaged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::Controls::FocusEngagedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_FocusEngaged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->add_FocusEngaged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusEngaged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::Controls::FocusEngagedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FocusEngaged_revoker>(this, FocusEngaged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusEngaged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            _winrt_abi_type->remove_FocusEngaged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            _winrt_abi_type->remove_FocusEngaged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusDisengaged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_FocusDisengaged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->add_FocusDisengaged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusDisengaged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FocusDisengaged_revoker>(this, FocusDisengaged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::FocusDisengaged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            _winrt_abi_type->remove_FocusDisengaged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            _winrt_abi_type->remove_FocusDisengaged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl4<D>::RemoveFocusEngagement() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RemoveFocusEngagement());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl4>**)this;
            check_hresult(_winrt_abi_type->RemoveFocusEngagement());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl5<D>::DefaultStyleResourceUri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultStyleResourceUri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl5>**)this;
            check_hresult(_winrt_abi_type->get_DefaultStyleResourceUri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl5<D>::DefaultStyleResourceUri(winrt::Windows::Foundation::Uri const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DefaultStyleResourceUri(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl5>**)this;
            check_hresult(_winrt_abi_type->put_DefaultStyleResourceUri(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl7<D>::BackgroundSizing() const
    {
        winrt::Windows::UI::Xaml::Controls::BackgroundSizing value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl7>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl7<D>::BackgroundSizing(winrt::Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl7>**)this;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl7<D>::CornerRadius() const
    {
        winrt::Windows::UI::Xaml::CornerRadius value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl7>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControl7<D>::CornerRadius(winrt::Windows::UI::Xaml::CornerRadius const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControl7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControl7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControl7>**)this;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::Control{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerEntered(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnPointerEntered(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnPointerEntered(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerPressed(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnPointerPressed(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnPointerPressed(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerMoved(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnPointerMoved(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnPointerMoved(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerReleased(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnPointerReleased(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnPointerReleased(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerExited(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnPointerExited(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnPointerExited(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerCaptureLost(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnPointerCaptureLost(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnPointerCaptureLost(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerCanceled(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnPointerCanceled(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnPointerCanceled(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnPointerWheelChanged(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnPointerWheelChanged(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnPointerWheelChanged(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnTapped(winrt::Windows::UI::Xaml::Input::TappedRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnTapped(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnTapped(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDoubleTapped(winrt::Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnDoubleTapped(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnDoubleTapped(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnHolding(winrt::Windows::UI::Xaml::Input::HoldingRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnHolding(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnHolding(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnRightTapped(winrt::Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnRightTapped(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnRightTapped(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationStarting(winrt::Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnManipulationStarting(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnManipulationStarting(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationInertiaStarting(winrt::Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnManipulationInertiaStarting(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnManipulationInertiaStarting(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationStarted(winrt::Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnManipulationStarted(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnManipulationStarted(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationDelta(winrt::Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnManipulationDelta(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnManipulationDelta(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnManipulationCompleted(winrt::Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnManipulationCompleted(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnManipulationCompleted(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnKeyUp(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnKeyUp(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnKeyUp(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnKeyDown(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnKeyDown(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnKeyDown(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnGotFocus(winrt::Windows::UI::Xaml::RoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnGotFocus(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnGotFocus(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnLostFocus(winrt::Windows::UI::Xaml::RoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnLostFocus(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnLostFocus(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDragEnter(winrt::Windows::UI::Xaml::DragEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnDragEnter(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnDragEnter(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDragLeave(winrt::Windows::UI::Xaml::DragEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnDragLeave(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnDragLeave(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDragOver(winrt::Windows::UI::Xaml::DragEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnDragOver(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnDragOver(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides<D>::OnDrop(winrt::Windows::UI::Xaml::DragEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnDrop(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnDrop(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides6<D>::OnPreviewKeyDown(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnPreviewKeyDown(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides6>**)this;
            check_hresult(_winrt_abi_type->OnPreviewKeyDown(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides6<D>::OnPreviewKeyUp(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnPreviewKeyUp(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides6>**)this;
            check_hresult(_winrt_abi_type->OnPreviewKeyUp(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlOverrides6<D>::OnCharacterReceived(winrt::Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlOverrides6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnCharacterReceived(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlOverrides6>**)this;
            check_hresult(_winrt_abi_type->OnCharacterReceived(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlProtected<D>::DefaultStyleKey() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlProtected, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlProtected>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultStyleKey(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlProtected>**)this;
            check_hresult(_winrt_abi_type->get_DefaultStyleKey(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlProtected<D>::DefaultStyleKey(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlProtected, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlProtected>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DefaultStyleKey(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlProtected>**)this;
            check_hresult(_winrt_abi_type->put_DefaultStyleKey(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlProtected<D>::GetTemplateChild(param::hstring const& childName) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlProtected, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlProtected>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetTemplateChild(*(void**)(&childName), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlProtected>**)this;
            check_hresult(_winrt_abi_type->GetTemplateChild(*(void**)(&childName), &result));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontWeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FontStretchProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStretchProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontStretchProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::CharacterSpacingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterSpacingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_CharacterSpacingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::ForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::IsTabStopProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTabStopProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsTabStopProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::IsEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::TabIndexProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TabIndexProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_TabIndexProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::TabNavigationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TabNavigationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_TabNavigationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::TemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_TemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::PaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::HorizontalContentAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalContentAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalContentAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::VerticalContentAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalContentAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalContentAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::BackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::BorderThicknessProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::BorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::DefaultStyleKeyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultStyleKeyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_DefaultStyleKeyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics<D>::FocusStateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FocusStateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_FocusStateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics2<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::UseSystemFocusVisualsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UseSystemFocusVisualsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics3>**)this;
            check_hresult(_winrt_abi_type->get_UseSystemFocusVisualsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::IsTemplateFocusTargetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTemplateFocusTargetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsTemplateFocusTargetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::GetIsTemplateFocusTarget(winrt::Windows::UI::Xaml::FrameworkElement const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsTemplateFocusTarget(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics3>**)this;
            check_hresult(_winrt_abi_type->GetIsTemplateFocusTarget(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics3<D>::SetIsTemplateFocusTarget(winrt::Windows::UI::Xaml::FrameworkElement const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsTemplateFocusTarget(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics3>**)this;
            check_hresult(_winrt_abi_type->SetIsTemplateFocusTarget(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::IsFocusEngagementEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFocusEngagementEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)this;
            check_hresult(_winrt_abi_type->get_IsFocusEngagementEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::IsFocusEngagedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFocusEngagedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)this;
            check_hresult(_winrt_abi_type->get_IsFocusEngagedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::RequiresPointerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RequiresPointerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)this;
            check_hresult(_winrt_abi_type->get_RequiresPointerProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusLeftProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusLeftProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusLeftProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusRightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusRightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusRightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusUpProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusUpProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusUpProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::XYFocusDownProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusDownProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusDownProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics4<D>::ElementSoundModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ElementSoundModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics4>**)this;
            check_hresult(_winrt_abi_type->get_ElementSoundModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::DefaultStyleResourceUriProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultStyleResourceUriProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics5>**)this;
            check_hresult(_winrt_abi_type->get_DefaultStyleResourceUriProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::IsTemplateKeyTipTargetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTemplateKeyTipTargetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics5>**)this;
            check_hresult(_winrt_abi_type->get_IsTemplateKeyTipTargetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::GetIsTemplateKeyTipTarget(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsTemplateKeyTipTarget(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics5>**)this;
            check_hresult(_winrt_abi_type->GetIsTemplateKeyTipTarget(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics5<D>::SetIsTemplateKeyTipTarget(winrt::Windows::UI::Xaml::DependencyObject const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsTemplateKeyTipTarget(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics5>**)this;
            check_hresult(_winrt_abi_type->SetIsTemplateKeyTipTarget(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics7<D>::BackgroundSizingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics7>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlStatics7<D>::CornerRadiusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlStatics7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlStatics7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlStatics7>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlTemplate<D>::TargetType() const
    {
        winrt::Windows::UI::Xaml::Interop::TypeName value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlTemplate>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlTemplate, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlTemplate>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TargetType(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlTemplate>**)this;
            check_hresult(_winrt_abi_type->get_TargetType(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IControlTemplate<D>::TargetType(winrt::Windows::UI::Xaml::Interop::TypeName const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IControlTemplate>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IControlTemplate, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlTemplate>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TargetType(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IControlTemplate>**)this;
            check_hresult(_winrt_abi_type->put_TargetType(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDataTemplateSelector<D>::SelectTemplate(winrt::Windows::Foundation::IInspectable const& item, winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectTemplate(*(void**)(&item), *(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector>**)this;
            check_hresult(_winrt_abi_type->SelectTemplate(*(void**)(&item), *(void**)(&container), &result));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDataTemplateSelector2<D>::SelectTemplate(winrt::Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectTemplateForItem(*(void**)(&item), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector2>**)this;
            check_hresult(_winrt_abi_type->SelectTemplateForItem(*(void**)(&item), &result));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDataTemplateSelectorFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDataTemplateSelectorOverrides<D>::SelectTemplateCore(winrt::Windows::Foundation::IInspectable const& item, winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectTemplateCore(*(void**)(&item), *(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>**)this;
            check_hresult(_winrt_abi_type->SelectTemplateCore(*(void**)(&item), *(void**)(&container), &result));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDataTemplateSelectorOverrides2<D>::SelectTemplateCore(winrt::Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectTemplateForItemCore(*(void**)(&item), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>**)this;
            check_hresult(_winrt_abi_type->SelectTemplateForItemCore(*(void**)(&item), &result));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickedEventArgs<D>::OldDate() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OldDate(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_OldDate(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickedEventArgs<D>::NewDate() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NewDate(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_NewDate(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::CalendarIdentifier() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarIdentifier(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_CalendarIdentifier(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::CalendarIdentifier(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarIdentifier(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_CalendarIdentifier(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Date() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Date(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_Date(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Date(winrt::Windows::Foundation::DateTime const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Date(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_Date(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_DayVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DayVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_DayVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_MonthVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MonthVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_MonthVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_YearVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_YearVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_YearVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_YearVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayFormat() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayFormat(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_DayFormat(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DayFormat(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DayFormat(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_DayFormat(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthFormat() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthFormat(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_MonthFormat(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MonthFormat(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MonthFormat(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_MonthFormat(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearFormat() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_YearFormat(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_YearFormat(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::YearFormat(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_YearFormat(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_YearFormat(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MinYear() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinYear(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_MinYear(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MinYear(winrt::Windows::Foundation::DateTime const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinYear(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_MinYear(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MaxYear() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxYear(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_MaxYear(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::MaxYear(winrt::Windows::Foundation::DateTime const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxYear(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_MaxYear(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Orientation() const
    {
        winrt::Windows::UI::Xaml::Controls::Orientation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::Orientation(winrt::Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DateChanged(winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DateChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            check_hresult(_winrt_abi_type->add_DateChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DateChanged(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DateChanged_revoker>(this, DateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker<D>::DateChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DateChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker>**)this;
            _winrt_abi_type->remove_DateChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker2<D>::LightDismissOverlayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker2>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker2<D>::LightDismissOverlayMode(winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker2>**)this;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedDate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker3>**)this;
            check_hresult(_winrt_abi_type->get_SelectedDate(&value));
        }
        return winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDate(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime> const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedDate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker3>**)this;
            check_hresult(_winrt_abi_type->put_SelectedDate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDateChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::DatePicker, winrt::Windows::UI::Xaml::Controls::DatePickerSelectedValueChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SelectedDateChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker3>**)this;
            check_hresult(_winrt_abi_type->add_SelectedDateChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDateChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::DatePicker, winrt::Windows::UI::Xaml::Controls::DatePickerSelectedValueChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectedDateChanged_revoker>(this, SelectedDateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePicker3<D>::SelectedDateChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePicker3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePicker3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SelectedDateChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePicker3>**)this;
            _winrt_abi_type->remove_SelectedDateChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::DatePicker{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::CalendarIdentifier() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarIdentifier(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_CalendarIdentifier(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::CalendarIdentifier(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CalendarIdentifier(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_CalendarIdentifier(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::Date() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Date(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_Date(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::Date(winrt::Windows::Foundation::DateTime const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Date(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_Date(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DayVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_DayVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DayVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DayVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_DayVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MonthVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_MonthVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MonthVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MonthVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_MonthVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::YearVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_YearVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_YearVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::YearVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_YearVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_YearVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MinYear() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinYear(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_MinYear(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MinYear(winrt::Windows::Foundation::DateTime const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinYear(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_MinYear(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MaxYear() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxYear(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_MaxYear(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::MaxYear(winrt::Windows::Foundation::DateTime const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxYear(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_MaxYear(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DatePicked(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::DatePickerFlyout, winrt::Windows::UI::Xaml::Controls::DatePickedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DatePicked(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->add_DatePicked(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DatePicked(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::DatePickerFlyout, winrt::Windows::UI::Xaml::Controls::DatePickedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DatePicked_revoker>(this, DatePicked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::DatePicked(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DatePicked(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            _winrt_abi_type->remove_DatePicked(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout<D>::ShowAtAsync(winrt::Windows::UI::Xaml::FrameworkElement const& target) const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ShowAtAsync(*(void**)(&target), &operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->ShowAtAsync(*(void**)(&target), &operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::DayFormat() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayFormat(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)this;
            check_hresult(_winrt_abi_type->get_DayFormat(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::DayFormat(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DayFormat(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)this;
            check_hresult(_winrt_abi_type->put_DayFormat(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::MonthFormat() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthFormat(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)this;
            check_hresult(_winrt_abi_type->get_MonthFormat(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::MonthFormat(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MonthFormat(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)this;
            check_hresult(_winrt_abi_type->put_MonthFormat(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::YearFormat() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_YearFormat(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)this;
            check_hresult(_winrt_abi_type->get_YearFormat(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyout2<D>::YearFormat(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_YearFormat(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>**)this;
            check_hresult(_winrt_abi_type->put_YearFormat(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::PrimaryText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::PrimaryText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PrimaryText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->put_PrimaryText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::SecondaryText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItem<D>::SecondaryText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SecondaryText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->put_SecondaryText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItemStatics<D>::PrimaryTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PrimaryTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_PrimaryTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutItemStatics<D>::SecondaryTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SecondaryTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_SecondaryTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutPresenter2<D>::IsDefaultShadowEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2>**)this;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutPresenter2<D>::IsDefaultShadowEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsDefaultShadowEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2>**)this;
            check_hresult(_winrt_abi_type->put_IsDefaultShadowEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutPresenterStatics2<D>::IsDefaultShadowEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::CalendarIdentifierProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarIdentifierProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_CalendarIdentifierProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::DateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_DateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::DayVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_DayVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::MonthVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_MonthVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::YearVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_YearVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_YearVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::MinYearProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinYearProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinYearProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics<D>::MaxYearProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxYearProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxYearProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics2<D>::DayFormatProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayFormatProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>**)this;
            check_hresult(_winrt_abi_type->get_DayFormatProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics2<D>::MonthFormatProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthFormatProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>**)this;
            check_hresult(_winrt_abi_type->get_MonthFormatProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerFlyoutStatics2<D>::YearFormatProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_YearFormatProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>**)this;
            check_hresult(_winrt_abi_type->get_YearFormatProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerSelectedValueChangedEventArgs<D>::OldDate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OldDate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_OldDate(&value));
        }
        return winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerSelectedValueChangedEventArgs<D>::NewDate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NewDate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_NewDate(&value));
        }
        return winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::CalendarIdentifierProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CalendarIdentifierProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_CalendarIdentifierProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::DateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_DateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::DayVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_DayVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MonthVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MonthVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::YearVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_YearVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_YearVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::DayFormatProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DayFormatProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_DayFormatProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MonthFormatProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MonthFormatProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MonthFormatProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::YearFormatProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_YearFormatProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_YearFormatProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MinYearProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinYearProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinYearProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::MaxYearProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxYearProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxYearProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics2<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics2>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerStatics3<D>::SelectedDateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedDateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics3>**)this;
            check_hresult(_winrt_abi_type->get_SelectedDateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerValueChangedEventArgs<D>::OldDate() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OldDate(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_OldDate(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDatePickerValueChangedEventArgs<D>::NewDate() const
    {
        winrt::Windows::Foundation::DateTime value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NewDate(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_NewDate(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsCompletedEventArgs<D>::Items() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        return winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsCompletedEventArgs<D>::DropResult() const
    {
        winrt::Windows::ApplicationModel::DataTransfer::DataPackageOperation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DropResult(reinterpret_cast<uint32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_DropResult(reinterpret_cast<uint32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Cancel() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Cancel(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Items() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDragItemsStartingEventArgs<D>::Data() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Data(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Data(&value));
        }
        return winrt::Windows::ApplicationModel::DataTransfer::DataPackage{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDropDownButtonAutomationPeerFactory<D>::CreateInstance(winrt::Windows::UI::Xaml::Controls::DropDownButton const& owner, winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&owner), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&owner), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::DropDownButtonAutomationPeer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDropDownButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDropDownButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDropDownButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDropDownButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDropDownButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::DropDownButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IDynamicOverflowItemsChangingEventArgs<D>::Action() const
    {
        winrt::Windows::UI::Xaml::Controls::CommandBarDynamicOverflowAction value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Action(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Action(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlipView2<D>::UseTouchAnimationsForAllNavigation() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlipView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlipView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlipView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UseTouchAnimationsForAllNavigation(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlipView2>**)this;
            check_hresult(_winrt_abi_type->get_UseTouchAnimationsForAllNavigation(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlipView2<D>::UseTouchAnimationsForAllNavigation(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlipView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlipView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlipView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_UseTouchAnimationsForAllNavigation(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlipView2>**)this;
            check_hresult(_winrt_abi_type->put_UseTouchAnimationsForAllNavigation(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlipViewFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlipViewFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlipViewFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlipViewFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlipViewFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::FlipView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlipViewItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlipViewItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlipViewItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlipViewItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlipViewItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::FlipViewItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlipViewStatics2<D>::UseTouchAnimationsForAllNavigationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlipViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlipViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlipViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UseTouchAnimationsForAllNavigationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlipViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_UseTouchAnimationsForAllNavigationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyout<D>::Content() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyout>**)this;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyout<D>::Content(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyout>**)this;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyout<D>::FlyoutPresenterStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FlyoutPresenterStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyout>**)this;
            check_hresult(_winrt_abi_type->get_FlyoutPresenterStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyout<D>::FlyoutPresenterStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FlyoutPresenterStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyout>**)this;
            check_hresult(_winrt_abi_type->put_FlyoutPresenterStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlyoutFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlyoutFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::Flyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutPresenter2<D>::IsDefaultShadowEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2>**)this;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutPresenter2<D>::IsDefaultShadowEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsDefaultShadowEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2>**)this;
            check_hresult(_winrt_abi_type->put_IsDefaultShadowEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutPresenterFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::FlyoutPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutPresenterStatics2<D>::IsDefaultShadowEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutStatics<D>::ContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFlyoutStatics<D>::FlyoutPresenterStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FlyoutPresenterStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_FlyoutPresenterStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFocusEngagedEventArgs2<D>::Handled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2>**)this;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFocusEngagedEventArgs2<D>::Handled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2>**)this;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::Glyph() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Glyph(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)this;
            check_hresult(_winrt_abi_type->get_Glyph(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::Glyph(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Glyph(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)this;
            check_hresult(_winrt_abi_type->put_Glyph(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)this;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)this;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontFamily() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)this;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        return winrt::Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontFamily(winrt::Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)this;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontWeight() const
    {
        winrt::Windows::UI::Text::FontWeight value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)this;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontWeight(winrt::Windows::UI::Text::FontWeight const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)this;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontStyle() const
    {
        winrt::Windows::UI::Text::FontStyle value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)this;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon<D>::FontStyle(winrt::Windows::UI::Text::FontStyle const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon>**)this;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon2<D>::IsTextScaleFactorEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon2>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon2<D>::IsTextScaleFactorEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon2>**)this;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon3<D>::MirroredWhenRightToLeft() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MirroredWhenRightToLeft(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon3>**)this;
            check_hresult(_winrt_abi_type->get_MirroredWhenRightToLeft(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIcon3<D>::MirroredWhenRightToLeft(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIcon3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIcon3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MirroredWhenRightToLeft(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIcon3>**)this;
            check_hresult(_winrt_abi_type->put_MirroredWhenRightToLeft(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::FontIcon{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::Glyph() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Glyph(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->get_Glyph(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::Glyph(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Glyph(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->put_Glyph(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontFamily() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        return winrt::Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontFamily(winrt::Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontWeight() const
    {
        winrt::Windows::UI::Text::FontWeight value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontWeight(winrt::Windows::UI::Text::FontWeight const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontStyle() const
    {
        winrt::Windows::UI::Text::FontStyle value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::FontStyle(winrt::Windows::UI::Text::FontStyle const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::IsTextScaleFactorEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::IsTextScaleFactorEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::MirroredWhenRightToLeft() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MirroredWhenRightToLeft(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->get_MirroredWhenRightToLeft(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSource<D>::MirroredWhenRightToLeft(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MirroredWhenRightToLeft(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSource>**)this;
            check_hresult(_winrt_abi_type->put_MirroredWhenRightToLeft(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSourceFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::FontIconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::GlyphProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GlyphProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_GlyphProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontWeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::FontStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconSourceStatics<D>::MirroredWhenRightToLeftProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MirroredWhenRightToLeftProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_MirroredWhenRightToLeftProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::GlyphProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GlyphProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics>**)this;
            check_hresult(_winrt_abi_type->get_GlyphProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontWeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics<D>::FontStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics2<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFontIconStatics3<D>::MirroredWhenRightToLeftProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFontIconStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MirroredWhenRightToLeftProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFontIconStatics3>**)this;
            check_hresult(_winrt_abi_type->get_MirroredWhenRightToLeftProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::CacheSize() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CacheSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->get_CacheSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::CacheSize(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CacheSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->put_CacheSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::CanGoBack() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanGoBack(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->get_CanGoBack(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::CanGoForward() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanGoForward(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->get_CanGoForward(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::CurrentSourcePageType() const
    {
        winrt::Windows::UI::Xaml::Interop::TypeName value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CurrentSourcePageType(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->get_CurrentSourcePageType(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::SourcePageType() const
    {
        winrt::Windows::UI::Xaml::Interop::TypeName value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SourcePageType(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->get_SourcePageType(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::SourcePageType(winrt::Windows::UI::Xaml::Interop::TypeName const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SourcePageType(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->put_SourcePageType(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::BackStackDepth() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackStackDepth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->get_BackStackDepth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated(winrt::Windows::UI::Xaml::Navigation::NavigatedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Navigated(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->add_Navigated(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated(auto_revoke_t, winrt::Windows::UI::Xaml::Navigation::NavigatedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Navigated_revoker>(this, Navigated(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigated(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Navigated(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            _winrt_abi_type->remove_Navigated(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating(winrt::Windows::UI::Xaml::Navigation::NavigatingCancelEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Navigating(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->add_Navigating(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating(auto_revoke_t, winrt::Windows::UI::Xaml::Navigation::NavigatingCancelEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Navigating_revoker>(this, Navigating(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigating(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Navigating(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            _winrt_abi_type->remove_Navigating(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed(winrt::Windows::UI::Xaml::Navigation::NavigationFailedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_NavigationFailed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->add_NavigationFailed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed(auto_revoke_t, winrt::Windows::UI::Xaml::Navigation::NavigationFailedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, NavigationFailed_revoker>(this, NavigationFailed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationFailed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            _winrt_abi_type->remove_NavigationFailed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            _winrt_abi_type->remove_NavigationFailed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped(winrt::Windows::UI::Xaml::Navigation::NavigationStoppedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_NavigationStopped(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->add_NavigationStopped(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped(auto_revoke_t, winrt::Windows::UI::Xaml::Navigation::NavigationStoppedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, NavigationStopped_revoker>(this, NavigationStopped(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::NavigationStopped(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            _winrt_abi_type->remove_NavigationStopped(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            _winrt_abi_type->remove_NavigationStopped(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::GoBack() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GoBack());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->GoBack());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::GoForward() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GoForward());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->GoForward());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::Navigate(winrt::Windows::UI::Xaml::Interop::TypeName const& sourcePageType, winrt::Windows::Foundation::IInspectable const& parameter) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Navigate(impl::bind_in(sourcePageType), *(void**)(&parameter), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->Navigate(impl::bind_in(sourcePageType), *(void**)(&parameter), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::GetNavigationState() const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetNavigationState(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->GetNavigationState(&result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame<D>::SetNavigationState(param::hstring const& navigationState) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetNavigationState(*(void**)(&navigationState)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame>**)this;
            check_hresult(_winrt_abi_type->SetNavigationState(*(void**)(&navigationState)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame2<D>::BackStack() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackStack(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame2>**)this;
            check_hresult(_winrt_abi_type->get_BackStack(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Navigation::PageStackEntry>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame2<D>::ForwardStack() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ForwardStack(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame2>**)this;
            check_hresult(_winrt_abi_type->get_ForwardStack(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Navigation::PageStackEntry>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame2<D>::Navigate(winrt::Windows::UI::Xaml::Interop::TypeName const& sourcePageType, winrt::Windows::Foundation::IInspectable const& parameter, winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const& infoOverride) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Navigate(impl::bind_in(sourcePageType), *(void**)(&parameter), *(void**)(&infoOverride), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame2>**)this;
            check_hresult(_winrt_abi_type->Navigate(impl::bind_in(sourcePageType), *(void**)(&parameter), *(void**)(&infoOverride), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame3<D>::GoBack(winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const& transitionInfoOverride) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GoBack(*(void**)(&transitionInfoOverride)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame3>**)this;
            check_hresult(_winrt_abi_type->GoBack(*(void**)(&transitionInfoOverride)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame4<D>::SetNavigationState(param::hstring const& navigationState, bool suppressNavigate) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetNavigationStateWithNavigationControl(*(void**)(&navigationState), suppressNavigate));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame4>**)this;
            check_hresult(_winrt_abi_type->SetNavigationStateWithNavigationControl(*(void**)(&navigationState), suppressNavigate));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame5<D>::IsNavigationStackEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsNavigationStackEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame5>**)this;
            check_hresult(_winrt_abi_type->get_IsNavigationStackEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame5<D>::IsNavigationStackEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsNavigationStackEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame5>**)this;
            check_hresult(_winrt_abi_type->put_IsNavigationStackEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrame5<D>::NavigateToType(winrt::Windows::UI::Xaml::Interop::TypeName const& sourcePageType, winrt::Windows::Foundation::IInspectable const& parameter, winrt::Windows::UI::Xaml::Navigation::FrameNavigationOptions const& navigationOptions) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrame5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrame5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->NavigateToType(impl::bind_in(sourcePageType), *(void**)(&parameter), *(void**)(&navigationOptions), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrame5>**)this;
            check_hresult(_winrt_abi_type->NavigateToType(impl::bind_in(sourcePageType), *(void**)(&parameter), *(void**)(&navigationOptions), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrameFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrameFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::Frame{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CacheSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrameStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CacheSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)this;
            check_hresult(_winrt_abi_type->get_CacheSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CanGoBackProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrameStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanGoBackProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanGoBackProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CanGoForwardProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrameStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanGoForwardProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanGoForwardProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::CurrentSourcePageTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrameStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CurrentSourcePageTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)this;
            check_hresult(_winrt_abi_type->get_CurrentSourcePageTypeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::SourcePageTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrameStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SourcePageTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)this;
            check_hresult(_winrt_abi_type->get_SourcePageTypeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics<D>::BackStackDepthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrameStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackStackDepthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics>**)this;
            check_hresult(_winrt_abi_type->get_BackStackDepthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics2<D>::BackStackProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrameStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackStackProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics2>**)this;
            check_hresult(_winrt_abi_type->get_BackStackProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics2<D>::ForwardStackProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrameStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ForwardStackProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ForwardStackProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IFrameStatics5<D>::IsNavigationStackEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IFrameStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsNavigationStackEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IFrameStatics5>**)this;
            check_hresult(_winrt_abi_type->get_IsNavigationStackEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid<D>::RowDefinitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowDefinitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid>**)this;
            check_hresult(_winrt_abi_type->get_RowDefinitions(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::RowDefinitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid<D>::ColumnDefinitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColumnDefinitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid>**)this;
            check_hresult(_winrt_abi_type->get_ColumnDefinitions(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ColumnDefinitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)this;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderThickness() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)this;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::BorderThickness(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)this;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::CornerRadius() const
    {
        winrt::Windows::UI::Xaml::CornerRadius value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::CornerRadius(winrt::Windows::UI::Xaml::CornerRadius const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)this;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::Padding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)this;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid2<D>::Padding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid2>**)this;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid3<D>::RowSpacing() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowSpacing(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid3>**)this;
            check_hresult(_winrt_abi_type->get_RowSpacing(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid3<D>::RowSpacing(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_RowSpacing(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid3>**)this;
            check_hresult(_winrt_abi_type->put_RowSpacing(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid3<D>::ColumnSpacing() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColumnSpacing(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid3>**)this;
            check_hresult(_winrt_abi_type->get_ColumnSpacing(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid3<D>::ColumnSpacing(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ColumnSpacing(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid3>**)this;
            check_hresult(_winrt_abi_type->put_ColumnSpacing(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid4<D>::BackgroundSizing() const
    {
        winrt::Windows::UI::Xaml::Controls::BackgroundSizing value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid4>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGrid4<D>::BackgroundSizing(winrt::Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGrid4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGrid4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGrid4>**)this;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::Grid{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::RowProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_RowProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetRow(winrt::Windows::UI::Xaml::FrameworkElement const& element) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetRow(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->GetRow(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetRow(winrt::Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetRow(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->SetRow(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::ColumnProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColumnProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_ColumnProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetColumn(winrt::Windows::UI::Xaml::FrameworkElement const& element) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetColumn(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->GetColumn(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetColumn(winrt::Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetColumn(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->SetColumn(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::RowSpanProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowSpanProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_RowSpanProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetRowSpan(winrt::Windows::UI::Xaml::FrameworkElement const& element) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetRowSpan(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->GetRowSpan(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetRowSpan(winrt::Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetRowSpan(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->SetRowSpan(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::ColumnSpanProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColumnSpanProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_ColumnSpanProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::GetColumnSpan(winrt::Windows::UI::Xaml::FrameworkElement const& element) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetColumnSpan(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->GetColumnSpan(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics<D>::SetColumnSpan(winrt::Windows::UI::Xaml::FrameworkElement const& element, int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetColumnSpan(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics>**)this;
            check_hresult(_winrt_abi_type->SetColumnSpan(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::BorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics2>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::BorderThicknessProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics2>**)this;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::CornerRadiusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics2<D>::PaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics3<D>::RowSpacingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowSpacingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics3>**)this;
            check_hresult(_winrt_abi_type->get_RowSpacingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics3<D>::ColumnSpacingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColumnSpacingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics3>**)this;
            check_hresult(_winrt_abi_type->get_ColumnSpacingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridStatics4<D>::BackgroundSizingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridStatics4>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridViewFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridViewFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridViewFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridViewFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridViewFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::GridView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridViewHeaderItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::GridViewHeaderItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridViewItem<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridViewItem>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::GridViewItemTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGridViewItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGridViewItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGridViewItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridViewItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGridViewItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::GridViewItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::GroupItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::Panel() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Panel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->get_Panel(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ItemsPanelTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::Panel(winrt::Windows::UI::Xaml::Controls::ItemsPanelTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Panel(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->put_Panel(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContainerStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->get_ContainerStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContainerStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->put_ContainerStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyleSelector() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContainerStyleSelector(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->get_ContainerStyleSelector(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::StyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::ContainerStyleSelector(winrt::Windows::UI::Xaml::Controls::StyleSelector const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContainerStyleSelector(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->put_ContainerStyleSelector(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplateSelector() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateSelector(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateSelector(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HeaderTemplateSelector(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplateSelector(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplateSelector(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HidesIfEmpty() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HidesIfEmpty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->get_HidesIfEmpty(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle<D>::HidesIfEmpty(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HidesIfEmpty(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle>**)this;
            check_hresult(_winrt_abi_type->put_HidesIfEmpty(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle2<D>::HeaderContainerStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderContainerStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderContainerStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyle2<D>::HeaderContainerStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyle2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderContainerStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyle2>**)this;
            check_hresult(_winrt_abi_type->put_HeaderContainerStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyleFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyleFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyleFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyleFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::GroupStyle{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyleSelector<D>::SelectGroupStyle(winrt::Windows::Foundation::IInspectable const& group, uint32_t level) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelector>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelector, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelector>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectGroupStyle(*(void**)(&group), level, &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelector>**)this;
            check_hresult(_winrt_abi_type->SelectGroupStyle(*(void**)(&group), level, &result));
        }
        return winrt::Windows::UI::Xaml::Controls::GroupStyle{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyleSelectorFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::GroupStyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IGroupStyleSelectorOverrides<D>::SelectGroupStyleCore(winrt::Windows::Foundation::IInspectable const& group, uint32_t level) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectGroupStyleCore(*(void**)(&group), level, &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides>**)this;
            check_hresult(_winrt_abi_type->SelectGroupStyleCore(*(void**)(&group), level, &result));
        }
        return winrt::Windows::UI::Xaml::Controls::GroupStyle{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementTarget() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlacementTarget(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            check_hresult(_winrt_abi_type->get_PlacementTarget(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementTarget(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlacementTarget(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            check_hresult(_winrt_abi_type->put_PlacementTarget(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementAlignment() const
    {
        winrt::Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlacementAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            check_hresult(_winrt_abi_type->get_PlacementAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::PlacementAlignment(winrt::Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlacementAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            check_hresult(_winrt_abi_type->put_PlacementAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::IsOpen() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOpen(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            check_hresult(_winrt_abi_type->get_IsOpen(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::AreCandidatesEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreCandidatesEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            check_hresult(_winrt_abi_type->get_AreCandidatesEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::AreCandidatesEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AreCandidatesEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            check_hresult(_winrt_abi_type->put_AreCandidatesEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Opened(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Opened(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            check_hresult(_winrt_abi_type->add_Opened(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Opened(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Opened_revoker>(this, Opened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Opened(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Opened(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            _winrt_abi_type->remove_Opened(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Closed(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Closed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            check_hresult(_winrt_abi_type->add_Closed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Closed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Closed_revoker>(this, Closed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::Closed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Closed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            _winrt_abi_type->remove_Closed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::TryClose() const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->TryClose(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            check_hresult(_winrt_abi_type->TryClose(&result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView<D>::TryOpen() const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->TryOpen(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView>**)this;
            check_hresult(_winrt_abi_type->TryOpen(&result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::IsSwitchToKeyboardEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSwitchToKeyboardEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            check_hresult(_winrt_abi_type->get_IsSwitchToKeyboardEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::IsSwitchToKeyboardEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSwitchToKeyboardEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            check_hresult(_winrt_abi_type->put_IsSwitchToKeyboardEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::IsCommandBarOpen() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCommandBarOpen(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            check_hresult(_winrt_abi_type->get_IsCommandBarOpen(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::IsCommandBarOpen(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsCommandBarOpen(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            check_hresult(_winrt_abi_type->put_IsCommandBarOpen(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::InputDeviceTypes() const
    {
        winrt::Windows::UI::Core::CoreInputDeviceTypes value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InputDeviceTypes(reinterpret_cast<uint32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            check_hresult(_winrt_abi_type->get_InputDeviceTypes(reinterpret_cast<uint32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::InputDeviceTypes(winrt::Windows::UI::Core::CoreInputDeviceTypes const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_InputDeviceTypes(static_cast<uint32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            check_hresult(_winrt_abi_type->put_InputDeviceTypes(static_cast<uint32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::CandidatesChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingViewCandidatesChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CandidatesChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            check_hresult(_winrt_abi_type->add_CandidatesChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::CandidatesChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingViewCandidatesChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CandidatesChanged_revoker>(this, CandidatesChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::CandidatesChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CandidatesChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            _winrt_abi_type->remove_CandidatesChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::TextSubmitted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingViewTextSubmittedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextSubmitted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            check_hresult(_winrt_abi_type->add_TextSubmitted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::TextSubmitted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingViewTextSubmittedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextSubmitted_revoker>(this, TextSubmitted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::TextSubmitted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextSubmitted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            _winrt_abi_type->remove_TextSubmitted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::GetCandidates(uint32_t candidatesSessionId) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetCandidates(candidatesSessionId, &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            check_hresult(_winrt_abi_type->GetCandidates(candidatesSessionId, &result));
        }
        return winrt::Windows::Foundation::Collections::IVectorView<hstring>{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingView2<D>::SelectCandidate(uint32_t candidatesSessionId, uint32_t selectedCandidateIndex) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectCandidate(candidatesSessionId, selectedCandidateIndex));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingView2>**)this;
            check_hresult(_winrt_abi_type->SelectCandidate(candidatesSessionId, selectedCandidateIndex));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewCandidatesChangedEventArgs<D>::CandidatesSessionId() const
    {
        uint32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewCandidatesChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingViewCandidatesChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewCandidatesChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CandidatesSessionId(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewCandidatesChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_CandidatesSessionId(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingViewFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::HandwritingView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::PlacementTargetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlacementTargetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlacementTargetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::PlacementAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlacementAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlacementAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::IsOpenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOpenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsOpenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics<D>::AreCandidatesEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreCandidatesEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_AreCandidatesEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics2<D>::IsSwitchToKeyboardEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSwitchToKeyboardEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsSwitchToKeyboardEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHandwritingViewStatics2<D>::IsCommandBarOpenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCommandBarOpenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsCommandBarOpenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::Orientation() const
    {
        winrt::Windows::UI::Xaml::Controls::Orientation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::Orientation(winrt::Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::DefaultSectionIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultSectionIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->get_DefaultSectionIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::DefaultSectionIndex(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DefaultSectionIndex(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->put_DefaultSectionIndex(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::Sections() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Sections(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->get_Sections(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::HubSection>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInView() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SectionsInView(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->get_SectionsInView(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::HubSection>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaders() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SectionHeaders(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->get_SectionHeaders(&value));
        }
        return winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick(winrt::Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SectionHeaderClick(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->add_SectionHeaderClick(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SectionHeaderClick_revoker>(this, SectionHeaderClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionHeaderClick(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SectionHeaderClick(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            _winrt_abi_type->remove_SectionHeaderClick(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged(winrt::Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SectionsInViewChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->add_SectionsInViewChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SectionsInViewChanged_revoker>(this, SectionsInViewChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::SectionsInViewChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SectionsInViewChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            _winrt_abi_type->remove_SectionsInViewChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHub<D>::ScrollToSection(winrt::Windows::UI::Xaml::Controls::HubSection const& section) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHub>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHub, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ScrollToSection(*(void**)(&section)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHub>**)this;
            check_hresult(_winrt_abi_type->ScrollToSection(*(void**)(&section)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::Hub{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSection>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSection, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSection>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSection, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSection>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSection, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSection>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSection, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::ContentTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSection>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSection, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)this;
            check_hresult(_winrt_abi_type->get_ContentTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::ContentTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSection>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSection, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContentTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)this;
            check_hresult(_winrt_abi_type->put_ContentTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::IsHeaderInteractive() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSection>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSection, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHeaderInteractive(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)this;
            check_hresult(_winrt_abi_type->get_IsHeaderInteractive(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSection<D>::IsHeaderInteractive(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSection>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSection, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsHeaderInteractive(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSection>**)this;
            check_hresult(_winrt_abi_type->put_IsHeaderInteractive(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSectionFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSectionFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::HubSection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionHeaderClickEventArgs<D>::Section() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Section(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Section(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::HubSection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::ContentTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubSectionStatics<D>::IsHeaderInteractiveProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHeaderInteractiveProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsHeaderInteractiveProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::DefaultSectionIndexProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultSectionIndexProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)this;
            check_hresult(_winrt_abi_type->get_DefaultSectionIndexProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::SemanticZoomOwnerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SemanticZoomOwnerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)this;
            check_hresult(_winrt_abi_type->get_SemanticZoomOwnerProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::IsActiveViewProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsActiveViewProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsActiveViewProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHubStatics<D>::IsZoomedInViewProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHubStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHubStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomedInViewProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHubStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomedInViewProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHyperlinkButton<D>::NavigateUri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHyperlinkButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHyperlinkButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHyperlinkButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NavigateUri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHyperlinkButton>**)this;
            check_hresult(_winrt_abi_type->get_NavigateUri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHyperlinkButton<D>::NavigateUri(winrt::Windows::Foundation::Uri const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHyperlinkButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHyperlinkButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHyperlinkButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_NavigateUri(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHyperlinkButton>**)this;
            check_hresult(_winrt_abi_type->put_NavigateUri(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHyperlinkButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::HyperlinkButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IHyperlinkButtonStatics<D>::NavigateUriProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NavigateUriProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_NavigateUriProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconElement<D>::Foreground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IIconElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IIconElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconElement>**)this;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconElement<D>::Foreground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IIconElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IIconElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconElement>**)this;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconElementStatics<D>::ForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IIconElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IIconElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSource<D>::Foreground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSource>**)this;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSource<D>::Foreground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSource>**)this;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSourceElement<D>::IconSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IIconSourceElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IIconSourceElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSourceElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IconSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSourceElement>**)this;
            check_hresult(_winrt_abi_type->get_IconSource(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::IconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSourceElement<D>::IconSource(winrt::Windows::UI::Xaml::Controls::IconSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IIconSourceElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IIconSourceElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSourceElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IconSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSourceElement>**)this;
            check_hresult(_winrt_abi_type->put_IconSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSourceElementFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IIconSourceElementFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IIconSourceElementFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSourceElementFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSourceElementFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::IconSourceElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSourceElementStatics<D>::IconSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IIconSourceElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IIconSourceElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSourceElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IconSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSourceElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_IconSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IIconSourceStatics<D>::ForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::Source() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)this;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::Source(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)this;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::Stretch() const
    {
        winrt::Windows::UI::Xaml::Media::Stretch value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)this;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::Stretch(winrt::Windows::UI::Xaml::Media::Stretch const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)this;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::NineGrid() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NineGrid(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)this;
            check_hresult(_winrt_abi_type->get_NineGrid(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::NineGrid(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_NineGrid(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)this;
            check_hresult(_winrt_abi_type->put_NineGrid(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::PlayToSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlayToSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)this;
            check_hresult(_winrt_abi_type->get_PlayToSource(&value));
        }
        return winrt::Windows::Media::PlayTo::PlayToSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed(winrt::Windows::UI::Xaml::ExceptionRoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ImageFailed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)this;
            check_hresult(_winrt_abi_type->add_ImageFailed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed(auto_revoke_t, winrt::Windows::UI::Xaml::ExceptionRoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ImageFailed_revoker>(this, ImageFailed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::ImageFailed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ImageFailed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)this;
            _winrt_abi_type->remove_ImageFailed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ImageOpened(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)this;
            check_hresult(_winrt_abi_type->add_ImageOpened(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ImageOpened_revoker>(this, ImageOpened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage<D>::ImageOpened(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ImageOpened(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage>**)this;
            _winrt_abi_type->remove_ImageOpened(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage2<D>::GetAsCastingSource() const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAsCastingSource(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage2>**)this;
            check_hresult(_winrt_abi_type->GetAsCastingSource(&result));
        }
        return winrt::Windows::Media::Casting::CastingSource{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImage3<D>::GetAlphaMask() const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImage3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImage3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlphaMask(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImage3>**)this;
            check_hresult(_winrt_abi_type->GetAlphaMask(&result));
        }
        return winrt::Windows::UI::Composition::CompositionBrush{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImageStatics<D>::SourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImageStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImageStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImageStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImageStatics>**)this;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImageStatics<D>::StretchProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImageStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImageStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImageStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImageStatics>**)this;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImageStatics<D>::NineGridProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImageStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImageStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImageStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NineGridProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImageStatics>**)this;
            check_hresult(_winrt_abi_type->get_NineGridProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IImageStatics<D>::PlayToSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IImageStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IImageStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImageStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlayToSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IImageStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlayToSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkCanvas<D>::InkPresenter() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkCanvas>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkCanvas, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkCanvas>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InkPresenter(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkCanvas>**)this;
            check_hresult(_winrt_abi_type->get_InkPresenter(&value));
        }
        return winrt::Windows::UI::Input::Inking::InkPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkCanvasFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkCanvasFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkCanvasFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkCanvasFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkCanvasFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkCanvas{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InitialControls() const
    {
        winrt::Windows::UI::Xaml::Controls::InkToolbarInitialControls value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InitialControls(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->get_InitialControls(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InitialControls(winrt::Windows::UI::Xaml::Controls::InkToolbarInitialControls const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_InitialControls(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->put_InitialControls(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::Children() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Children(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->get_Children(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyObjectCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveTool() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ActiveTool(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->get_ActiveTool(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveTool(winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ActiveTool(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->put_ActiveTool(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributes() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InkDrawingAttributes(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->get_InkDrawingAttributes(&value));
        }
        return winrt::Windows::UI::Input::Inking::InkDrawingAttributes{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonChecked() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsRulerButtonChecked(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->get_IsRulerButtonChecked(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonChecked(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsRulerButtonChecked(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->put_IsRulerButtonChecked(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::TargetInkCanvas() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TargetInkCanvas(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->get_TargetInkCanvas(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkCanvas{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::TargetInkCanvas(winrt::Windows::UI::Xaml::Controls::InkCanvas const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TargetInkCanvas(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->put_TargetInkCanvas(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveToolChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ActiveToolChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->add_ActiveToolChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveToolChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, ActiveToolChanged_revoker>(this, ActiveToolChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::ActiveToolChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ActiveToolChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            _winrt_abi_type->remove_ActiveToolChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributesChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_InkDrawingAttributesChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->add_InkDrawingAttributesChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributesChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, InkDrawingAttributesChanged_revoker>(this, InkDrawingAttributesChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::InkDrawingAttributesChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            _winrt_abi_type->remove_InkDrawingAttributesChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            _winrt_abi_type->remove_InkDrawingAttributesChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::EraseAllClicked(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_EraseAllClicked(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->add_EraseAllClicked(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::EraseAllClicked(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, EraseAllClicked_revoker>(this, EraseAllClicked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::EraseAllClicked(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            _winrt_abi_type->remove_EraseAllClicked(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            _winrt_abi_type->remove_EraseAllClicked(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonCheckedChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_IsRulerButtonCheckedChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->add_IsRulerButtonCheckedChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonCheckedChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, IsRulerButtonCheckedChanged_revoker>(this, IsRulerButtonCheckedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::IsRulerButtonCheckedChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            _winrt_abi_type->remove_IsRulerButtonCheckedChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            _winrt_abi_type->remove_IsRulerButtonCheckedChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::GetToolButton(winrt::Windows::UI::Xaml::Controls::InkToolbarTool const& tool) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetToolButton(static_cast<int32_t>(tool), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->GetToolButton(static_cast<int32_t>(tool), &result));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar<D>::GetToggleButton(winrt::Windows::UI::Xaml::Controls::InkToolbarToggle const& tool) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetToggleButton(static_cast<int32_t>(tool), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar>**)this;
            check_hresult(_winrt_abi_type->GetToggleButton(static_cast<int32_t>(tool), &result));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarToggleButton{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonChecked() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsStencilButtonChecked(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)this;
            check_hresult(_winrt_abi_type->get_IsStencilButtonChecked(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonChecked(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsStencilButtonChecked(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)this;
            check_hresult(_winrt_abi_type->put_IsStencilButtonChecked(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::ButtonFlyoutPlacement() const
    {
        winrt::Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ButtonFlyoutPlacement(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)this;
            check_hresult(_winrt_abi_type->get_ButtonFlyoutPlacement(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::ButtonFlyoutPlacement(winrt::Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ButtonFlyoutPlacement(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)this;
            check_hresult(_winrt_abi_type->put_ButtonFlyoutPlacement(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::Orientation() const
    {
        winrt::Windows::UI::Xaml::Controls::Orientation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)this;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::Orientation(winrt::Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)this;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonCheckedChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_IsStencilButtonCheckedChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)this;
            check_hresult(_winrt_abi_type->add_IsStencilButtonCheckedChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonCheckedChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, IsStencilButtonCheckedChanged_revoker>(this, IsStencilButtonCheckedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::IsStencilButtonCheckedChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_IsStencilButtonCheckedChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)this;
            _winrt_abi_type->remove_IsStencilButtonCheckedChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar2<D>::GetMenuButton(winrt::Windows::UI::Xaml::Controls::InkToolbarMenuKind const& menu) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetMenuButton(static_cast<int32_t>(menu), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar2>**)this;
            check_hresult(_winrt_abi_type->GetMenuButton(static_cast<int32_t>(menu), &result));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarMenuButton{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar3<D>::TargetInkPresenter() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TargetInkPresenter(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar3>**)this;
            check_hresult(_winrt_abi_type->get_TargetInkPresenter(&value));
        }
        return winrt::Windows::UI::Input::Inking::InkPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbar3<D>::TargetInkPresenter(winrt::Windows::UI::Input::Inking::InkPresenter const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbar3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TargetInkPresenter(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbar3>**)this;
            check_hresult(_winrt_abi_type->put_TargetInkPresenter(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarBallpointPenButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPen<D>::CreateInkDrawingAttributes(winrt::Windows::UI::Xaml::Media::Brush const& brush, double strokeWidth) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPen>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPen, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPen>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInkDrawingAttributes(*(void**)(&brush), strokeWidth, &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPen>**)this;
            check_hresult(_winrt_abi_type->CreateInkDrawingAttributes(*(void**)(&brush), strokeWidth, &result));
        }
        return winrt::Windows::UI::Input::Inking::InkDrawingAttributes{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::CustomPen() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CustomPen(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>**)this;
            check_hresult(_winrt_abi_type->get_CustomPen(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPen{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::CustomPen(winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPen const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CustomPen(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>**)this;
            check_hresult(_winrt_abi_type->put_CustomPen(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::ConfigurationContent() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ConfigurationContent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>**)this;
            check_hresult(_winrt_abi_type->get_ConfigurationContent(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButton<D>::ConfigurationContent(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ConfigurationContent(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>**)this;
            check_hresult(_winrt_abi_type->put_ConfigurationContent(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPenButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButtonStatics<D>::CustomPenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CustomPenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_CustomPenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenButtonStatics<D>::ConfigurationContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ConfigurationContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_ConfigurationContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPen{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomPenOverrides<D>::CreateInkDrawingAttributesCore(winrt::Windows::UI::Xaml::Media::Brush const& brush, double strokeWidth) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInkDrawingAttributesCore(*(void**)(&brush), strokeWidth, &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides>**)this;
            check_hresult(_winrt_abi_type->CreateInkDrawingAttributesCore(*(void**)(&brush), strokeWidth, &result));
        }
        return winrt::Windows::UI::Input::Inking::InkDrawingAttributes{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToggleButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButton<D>::ConfigurationContent() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ConfigurationContent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton>**)this;
            check_hresult(_winrt_abi_type->get_ConfigurationContent(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButton<D>::ConfigurationContent(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ConfigurationContent(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton>**)this;
            check_hresult(_winrt_abi_type->put_ConfigurationContent(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarCustomToolButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarCustomToolButtonStatics<D>::ConfigurationContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ConfigurationContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_ConfigurationContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButton2<D>::IsClearAllVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsClearAllVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2>**)this;
            check_hresult(_winrt_abi_type->get_IsClearAllVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButton2<D>::IsClearAllVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsClearAllVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2>**)this;
            check_hresult(_winrt_abi_type->put_IsClearAllVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarEraserButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarEraserButtonStatics2<D>::IsClearAllVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsClearAllVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsClearAllVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Kind() const
    {
        winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Kind(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->get_Kind(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Kind(winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Kind(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->put_Kind(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::IsChecked() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsChecked(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->get_IsChecked(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::IsChecked(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsChecked(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->put_IsChecked(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Checked(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Checked(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->add_Checked(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Checked(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Checked_revoker>(this, Checked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Checked(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Checked(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)this;
            _winrt_abi_type->remove_Checked(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Unchecked(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Unchecked(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->add_Unchecked(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Unchecked(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, Unchecked_revoker>(this, Unchecked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItem<D>::Unchecked(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Unchecked(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>**)this;
            _winrt_abi_type->remove_Unchecked(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItemStatics<D>::KindProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_KindProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_KindProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarFlyoutItemStatics<D>::IsCheckedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCheckedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsCheckedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarHighlighterButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarHighlighterButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarIsStencilButtonCheckedChangedEventArgs<D>::StencilButton() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StencilButton(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_StencilButton(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarStencilButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarIsStencilButtonCheckedChangedEventArgs<D>::StencilKind() const
    {
        winrt::Windows::UI::Xaml::Controls::InkToolbarStencilKind value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StencilKind(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_StencilKind(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButton<D>::MenuKind() const
    {
        winrt::Windows::UI::Xaml::Controls::InkToolbarMenuKind value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuKind(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton>**)this;
            check_hresult(_winrt_abi_type->get_MenuKind(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButton<D>::IsExtensionGlyphShown() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsExtensionGlyphShown(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton>**)this;
            check_hresult(_winrt_abi_type->get_IsExtensionGlyphShown(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButton<D>::IsExtensionGlyphShown(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsExtensionGlyphShown(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton>**)this;
            check_hresult(_winrt_abi_type->put_IsExtensionGlyphShown(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarMenuButtonStatics<D>::IsExtensionGlyphShownProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsExtensionGlyphShownProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsExtensionGlyphShownProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::Palette() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Palette(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)this;
            check_hresult(_winrt_abi_type->get_Palette(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Media::Brush>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::Palette(param::vector<winrt::Windows::UI::Xaml::Media::Brush> const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Palette(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)this;
            check_hresult(_winrt_abi_type->put_Palette(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MinStrokeWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinStrokeWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)this;
            check_hresult(_winrt_abi_type->get_MinStrokeWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MinStrokeWidth(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinStrokeWidth(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)this;
            check_hresult(_winrt_abi_type->put_MinStrokeWidth(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MaxStrokeWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxStrokeWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)this;
            check_hresult(_winrt_abi_type->get_MaxStrokeWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::MaxStrokeWidth(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxStrokeWidth(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)this;
            check_hresult(_winrt_abi_type->put_MaxStrokeWidth(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)this;
            check_hresult(_winrt_abi_type->get_SelectedBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedBrushIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedBrushIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)this;
            check_hresult(_winrt_abi_type->get_SelectedBrushIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedBrushIndex(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedBrushIndex(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)this;
            check_hresult(_winrt_abi_type->put_SelectedBrushIndex(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedStrokeWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedStrokeWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)this;
            check_hresult(_winrt_abi_type->get_SelectedStrokeWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButton<D>::SelectedStrokeWidth(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedStrokeWidth(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>**)this;
            check_hresult(_winrt_abi_type->put_SelectedStrokeWidth(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::PaletteProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaletteProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaletteProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::MinStrokeWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinStrokeWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinStrokeWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::MaxStrokeWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxStrokeWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxStrokeWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::SelectedBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::SelectedBrushIndexProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedBrushIndexProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedBrushIndexProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenButtonStatics<D>::SelectedStrokeWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedStrokeWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedStrokeWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenConfigurationControl<D>::PenButton() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PenButton(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl>**)this;
            check_hresult(_winrt_abi_type->get_PenButton(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarPenButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenConfigurationControlFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPenConfigurationControlStatics<D>::PenButtonProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PenButtonProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_PenButtonProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarPencilButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarPencilButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarRulerButton<D>::Ruler() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Ruler(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton>**)this;
            check_hresult(_winrt_abi_type->get_Ruler(&value));
        }
        return winrt::Windows::UI::Input::Inking::InkPresenterRuler{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarRulerButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarRulerButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarRulerButtonStatics<D>::RulerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RulerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_RulerProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::InitialControlsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InitialControlsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)this;
            check_hresult(_winrt_abi_type->get_InitialControlsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::ChildrenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ChildrenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)this;
            check_hresult(_winrt_abi_type->get_ChildrenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::ActiveToolProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ActiveToolProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)this;
            check_hresult(_winrt_abi_type->get_ActiveToolProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::InkDrawingAttributesProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InkDrawingAttributesProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)this;
            check_hresult(_winrt_abi_type->get_InkDrawingAttributesProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::IsRulerButtonCheckedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsRulerButtonCheckedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsRulerButtonCheckedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics<D>::TargetInkCanvasProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TargetInkCanvasProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>**)this;
            check_hresult(_winrt_abi_type->get_TargetInkCanvasProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics2<D>::IsStencilButtonCheckedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsStencilButtonCheckedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsStencilButtonCheckedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics2<D>::ButtonFlyoutPlacementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ButtonFlyoutPlacementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ButtonFlyoutPlacementProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics2<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStatics3<D>::TargetInkPresenterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TargetInkPresenterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics3>**)this;
            check_hresult(_winrt_abi_type->get_TargetInkPresenterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::Ruler() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Ruler(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)this;
            check_hresult(_winrt_abi_type->get_Ruler(&value));
        }
        return winrt::Windows::UI::Input::Inking::InkPresenterRuler{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::Protractor() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Protractor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)this;
            check_hresult(_winrt_abi_type->get_Protractor(&value));
        }
        return winrt::Windows::UI::Input::Inking::InkPresenterProtractor{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::SelectedStencil() const
    {
        winrt::Windows::UI::Xaml::Controls::InkToolbarStencilKind value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedStencil(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)this;
            check_hresult(_winrt_abi_type->get_SelectedStencil(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::SelectedStencil(winrt::Windows::UI::Xaml::Controls::InkToolbarStencilKind const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedStencil(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)this;
            check_hresult(_winrt_abi_type->put_SelectedStencil(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsRulerItemVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsRulerItemVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)this;
            check_hresult(_winrt_abi_type->get_IsRulerItemVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsRulerItemVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsRulerItemVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)this;
            check_hresult(_winrt_abi_type->put_IsRulerItemVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsProtractorItemVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsProtractorItemVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)this;
            check_hresult(_winrt_abi_type->get_IsProtractorItemVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButton<D>::IsProtractorItemVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsProtractorItemVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>**)this;
            check_hresult(_winrt_abi_type->put_IsProtractorItemVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::InkToolbarStencilButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::RulerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RulerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_RulerProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::ProtractorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ProtractorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_ProtractorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::SelectedStencilProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedStencilProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedStencilProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::IsRulerItemVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsRulerItemVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsRulerItemVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarStencilButtonStatics<D>::IsProtractorItemVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsProtractorItemVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsProtractorItemVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarToggleButton<D>::ToggleKind() const
    {
        winrt::Windows::UI::Xaml::Controls::InkToolbarToggle value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ToggleKind(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButton>**)this;
            check_hresult(_winrt_abi_type->get_ToggleKind(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarToolButton<D>::ToolKind() const
    {
        winrt::Windows::UI::Xaml::Controls::InkToolbarTool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ToolKind(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton>**)this;
            check_hresult(_winrt_abi_type->get_ToolKind(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarToolButton<D>::IsExtensionGlyphShown() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsExtensionGlyphShown(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton>**)this;
            check_hresult(_winrt_abi_type->get_IsExtensionGlyphShown(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarToolButton<D>::IsExtensionGlyphShown(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsExtensionGlyphShown(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton>**)this;
            check_hresult(_winrt_abi_type->put_IsExtensionGlyphShown(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInkToolbarToolButtonStatics<D>::IsExtensionGlyphShownProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsExtensionGlyphShownProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsExtensionGlyphShownProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IInsertionPanel<D>::GetInsertionIndexes(winrt::Windows::Foundation::Point const& position, int32_t& first, int32_t& second) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IInsertionPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IInsertionPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInsertionPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetInsertionIndexes(impl::bind_in(position), &first, &second));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IInsertionPanel>**)this;
            check_hresult(_winrt_abi_type->GetInsertionIndexes(impl::bind_in(position), &first, &second));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemClickEventArgs<D>::ClickedItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemClickEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemClickEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemClickEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ClickedItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemClickEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_ClickedItem(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged(winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ItemsChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->add_ItemsChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ItemsChanged_revoker>(this, ItemsChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemsChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ItemsChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            _winrt_abi_type->remove_ItemsChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ItemFromContainer(winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ItemFromContainer(*(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->ItemFromContainer(*(void**)(&container), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ContainerFromItem(winrt::Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ContainerFromItem(*(void**)(&item), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->ContainerFromItem(*(void**)(&item), &result));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::IndexFromContainer(winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->IndexFromContainer(*(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->IndexFromContainer(*(void**)(&container), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::ContainerFromIndex(int32_t index) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ContainerFromIndex(index, &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->ContainerFromIndex(index, &result));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::GetItemContainerGeneratorForPanel(winrt::Windows::UI::Xaml::Controls::Panel const& panel) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetItemContainerGeneratorForPanel(*(void**)(&panel), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->GetItemContainerGeneratorForPanel(*(void**)(&panel), &result));
        }
        return winrt::Windows::UI::Xaml::Controls::ItemContainerGenerator{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::StartAt(winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position, winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorDirection const& direction, bool allowStartAtRealizedItem) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->StartAt(impl::bind_in(position), static_cast<int32_t>(direction), allowStartAtRealizedItem));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->StartAt(impl::bind_in(position), static_cast<int32_t>(direction), allowStartAtRealizedItem));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::Stop() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Stop());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->Stop());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::GenerateNext(bool& isNewlyRealized) const
    {
        void* returnValue{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GenerateNext(&isNewlyRealized, &returnValue));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->GenerateNext(&isNewlyRealized, &returnValue));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ returnValue, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::PrepareItemContainer(winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->PrepareItemContainer(*(void**)(&container)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->PrepareItemContainer(*(void**)(&container)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::RemoveAll() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RemoveAll());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->RemoveAll());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::Remove(winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position, int32_t count) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Remove(impl::bind_in(position), count));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->Remove(impl::bind_in(position), count));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::GeneratorPositionFromIndex(int32_t itemIndex) const
    {
        winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GeneratorPositionFromIndex(itemIndex, put_abi(result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->GeneratorPositionFromIndex(itemIndex, put_abi(result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::IndexFromGeneratorPosition(winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->IndexFromGeneratorPosition(impl::bind_in(position), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->IndexFromGeneratorPosition(impl::bind_in(position), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerGenerator<D>::Recycle(winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const& position, int32_t count) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Recycle(impl::bind_in(position), count));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>**)this;
            check_hresult(_winrt_abi_type->Recycle(impl::bind_in(position), count));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::ItemFromContainer(winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ItemFromContainer(*(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>**)this;
            check_hresult(_winrt_abi_type->ItemFromContainer(*(void**)(&container), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::ContainerFromItem(winrt::Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ContainerFromItem(*(void**)(&item), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>**)this;
            check_hresult(_winrt_abi_type->ContainerFromItem(*(void**)(&item), &result));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::IndexFromContainer(winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->IndexFromContainer(*(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>**)this;
            check_hresult(_winrt_abi_type->IndexFromContainer(*(void**)(&container), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemContainerMapping<D>::ContainerFromIndex(int32_t index) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ContainerFromIndex(index, &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>**)this;
            check_hresult(_winrt_abi_type->ContainerFromIndex(index, &result));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_ItemsSource(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsSource(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemsSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->put_ItemsSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::Items() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ItemCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_ItemTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->put_ItemTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplateSelector() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTemplateSelector(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_ItemTemplateSelector(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemTemplateSelector(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemTemplateSelector(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->put_ItemTemplateSelector(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsPanel() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsPanel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_ItemsPanel(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ItemsPanelTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemsPanel(winrt::Windows::UI::Xaml::Controls::ItemsPanelTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemsPanel(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->put_ItemsPanel(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::DisplayMemberPath() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayMemberPath(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_DisplayMemberPath(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::DisplayMemberPath(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DisplayMemberPath(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->put_DisplayMemberPath(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemContainerStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->put_ItemContainerStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyleSelector() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleSelector(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleSelector(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::StyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerStyleSelector(winrt::Windows::UI::Xaml::Controls::StyleSelector const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemContainerStyleSelector(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->put_ItemContainerStyleSelector(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerGenerator() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerGenerator(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerGenerator(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ItemContainerGenerator{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerTransitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerTransitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerTransitions(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::ItemContainerTransitions(winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemContainerTransitions(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->put_ItemContainerTransitions(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::GroupStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_GroupStyle(&value));
        }
        return winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::UI::Xaml::Controls::GroupStyle>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::GroupStyleSelector() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupStyleSelector(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_GroupStyleSelector(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::GroupStyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::GroupStyleSelector(winrt::Windows::UI::Xaml::Controls::GroupStyleSelector const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_GroupStyleSelector(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->put_GroupStyleSelector(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl<D>::IsGrouping() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsGrouping(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl>**)this;
            check_hresult(_winrt_abi_type->get_IsGrouping(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl2<D>::ItemsPanelRoot() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsPanelRoot(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl2>**)this;
            check_hresult(_winrt_abi_type->get_ItemsPanelRoot(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Panel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControl3<D>::GroupHeaderContainerFromItemContainer(winrt::Windows::UI::Xaml::DependencyObject const& itemContainer) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControl3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControl3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GroupHeaderContainerFromItemContainer(*(void**)(&itemContainer), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControl3>**)this;
            check_hresult(_winrt_abi_type->GroupHeaderContainerFromItemContainer(*(void**)(&itemContainer), &result));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ItemsControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::IsItemItsOwnContainerOverride(winrt::Windows::Foundation::IInspectable const& item) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->IsItemItsOwnContainerOverride(*(void**)(&item), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)this;
            check_hresult(_winrt_abi_type->IsItemItsOwnContainerOverride(*(void**)(&item), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::GetContainerForItemOverride() const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetContainerForItemOverride(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)this;
            check_hresult(_winrt_abi_type->GetContainerForItemOverride(&result));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::ClearContainerForItemOverride(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::Foundation::IInspectable const& item) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ClearContainerForItemOverride(*(void**)(&element), *(void**)(&item)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)this;
            check_hresult(_winrt_abi_type->ClearContainerForItemOverride(*(void**)(&element), *(void**)(&item)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::PrepareContainerForItemOverride(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::Foundation::IInspectable const& item) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->PrepareContainerForItemOverride(*(void**)(&element), *(void**)(&item)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)this;
            check_hresult(_winrt_abi_type->PrepareContainerForItemOverride(*(void**)(&element), *(void**)(&item)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemsChanged(winrt::Windows::Foundation::IInspectable const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnItemsChanged(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnItemsChanged(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemContainerStyleChanged(winrt::Windows::UI::Xaml::Style const& oldItemContainerStyle, winrt::Windows::UI::Xaml::Style const& newItemContainerStyle) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnItemContainerStyleChanged(*(void**)(&oldItemContainerStyle), *(void**)(&newItemContainerStyle)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnItemContainerStyleChanged(*(void**)(&oldItemContainerStyle), *(void**)(&newItemContainerStyle)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemContainerStyleSelectorChanged(winrt::Windows::UI::Xaml::Controls::StyleSelector const& oldItemContainerStyleSelector, winrt::Windows::UI::Xaml::Controls::StyleSelector const& newItemContainerStyleSelector) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnItemContainerStyleSelectorChanged(*(void**)(&oldItemContainerStyleSelector), *(void**)(&newItemContainerStyleSelector)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnItemContainerStyleSelectorChanged(*(void**)(&oldItemContainerStyleSelector), *(void**)(&newItemContainerStyleSelector)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemTemplateChanged(winrt::Windows::UI::Xaml::DataTemplate const& oldItemTemplate, winrt::Windows::UI::Xaml::DataTemplate const& newItemTemplate) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnItemTemplateChanged(*(void**)(&oldItemTemplate), *(void**)(&newItemTemplate)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnItemTemplateChanged(*(void**)(&oldItemTemplate), *(void**)(&newItemTemplate)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnItemTemplateSelectorChanged(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& oldItemTemplateSelector, winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& newItemTemplateSelector) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnItemTemplateSelectorChanged(*(void**)(&oldItemTemplateSelector), *(void**)(&newItemTemplateSelector)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnItemTemplateSelectorChanged(*(void**)(&oldItemTemplateSelector), *(void**)(&newItemTemplateSelector)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlOverrides<D>::OnGroupStyleSelectorChanged(winrt::Windows::UI::Xaml::Controls::GroupStyleSelector const& oldGroupStyleSelector, winrt::Windows::UI::Xaml::Controls::GroupStyleSelector const& newGroupStyleSelector) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnGroupStyleSelectorChanged(*(void**)(&oldGroupStyleSelector), *(void**)(&newGroupStyleSelector)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>**)this;
            check_hresult(_winrt_abi_type->OnGroupStyleSelectorChanged(*(void**)(&oldGroupStyleSelector), *(void**)(&newGroupStyleSelector)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemsSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemsSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemTemplateSelectorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTemplateSelectorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemTemplateSelectorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemsPanelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsPanelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemsPanelProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::DisplayMemberPathProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayMemberPathProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_DisplayMemberPathProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemContainerStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemContainerStyleSelectorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleSelectorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleSelectorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemContainerTransitionsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerTransitionsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerTransitionsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::GroupStyleSelectorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupStyleSelectorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_GroupStyleSelectorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::IsGroupingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsGroupingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsGroupingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::GetItemsOwner(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetItemsOwner(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->GetItemsOwner(*(void**)(&element), &result));
        }
        return winrt::Windows::UI::Xaml::Controls::ItemsControl{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsControlStatics<D>::ItemsControlFromItemContainer(winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ItemsControlFromItemContainer(*(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>**)this;
            check_hresult(_winrt_abi_type->ItemsControlFromItemContainer(*(void**)(&container), &result));
        }
        return winrt::Windows::UI::Xaml::Controls::ItemsControl{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPickedEventArgs<D>::AddedItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AddedItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_AddedItems(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPickedEventArgs<D>::RemovedItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RemovedItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_RemovedItems(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTransitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTransitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTransitions(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::HeaderTransitions(winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTransitions(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTransitions(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Padding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)this;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter<D>::Padding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter>**)this;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::Footer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Footer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)this;
            check_hresult(_winrt_abi_type->get_Footer(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::Footer(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Footer(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)this;
            check_hresult(_winrt_abi_type->put_Footer(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FooterTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)this;
            check_hresult(_winrt_abi_type->get_FooterTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FooterTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)this;
            check_hresult(_winrt_abi_type->put_FooterTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTransitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FooterTransitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)this;
            check_hresult(_winrt_abi_type->get_FooterTransitions(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenter2<D>::FooterTransitions(winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FooterTransitions(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>**)this;
            check_hresult(_winrt_abi_type->put_FooterTransitions(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::HeaderTransitionsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTransitionsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTransitionsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics<D>::PaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics2<D>::FooterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FooterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2>**)this;
            check_hresult(_winrt_abi_type->get_FooterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics2<D>::FooterTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FooterTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2>**)this;
            check_hresult(_winrt_abi_type->get_FooterTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsPresenterStatics2<D>::FooterTransitionsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FooterTransitionsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2>**)this;
            check_hresult(_winrt_abi_type->get_FooterTransitionsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupPadding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupPadding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_GroupPadding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupPadding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_GroupPadding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->put_GroupPadding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::Orientation() const
    {
        winrt::Windows::UI::Xaml::Controls::Orientation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::Orientation(winrt::Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::FirstCacheIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstCacheIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_FirstCacheIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::FirstVisibleIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstVisibleIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_FirstVisibleIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::LastVisibleIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LastVisibleIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_LastVisibleIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::LastCacheIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LastCacheIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_LastCacheIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::ScrollingDirection() const
    {
        winrt::Windows::UI::Xaml::Controls::PanelScrollingDirection value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ScrollingDirection(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_ScrollingDirection(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupHeaderPlacement() const
    {
        winrt::Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupHeaderPlacement(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_GroupHeaderPlacement(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::GroupHeaderPlacement(winrt::Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_GroupHeaderPlacement(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->put_GroupHeaderPlacement(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::ItemsUpdatingScrollMode() const
    {
        winrt::Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsUpdatingScrollMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_ItemsUpdatingScrollMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::ItemsUpdatingScrollMode(winrt::Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemsUpdatingScrollMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->put_ItemsUpdatingScrollMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::CacheLength() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CacheLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_CacheLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel<D>::CacheLength(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CacheLength(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>**)this;
            check_hresult(_winrt_abi_type->put_CacheLength(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel2<D>::AreStickyGroupHeadersEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreStickyGroupHeadersEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2>**)this;
            check_hresult(_winrt_abi_type->get_AreStickyGroupHeadersEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanel2<D>::AreStickyGroupHeadersEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AreStickyGroupHeadersEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2>**)this;
            check_hresult(_winrt_abi_type->put_AreStickyGroupHeadersEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::GroupPaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupPaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_GroupPaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::GroupHeaderPlacementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupHeaderPlacementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_GroupHeaderPlacementProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics<D>::CacheLengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CacheLengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_CacheLengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsStackPanelStatics2<D>::AreStickyGroupHeadersEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreStickyGroupHeadersEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics2>**)this;
            check_hresult(_winrt_abi_type->get_AreStickyGroupHeadersEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupPadding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupPadding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_GroupPadding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupPadding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_GroupPadding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_GroupPadding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::Orientation() const
    {
        winrt::Windows::UI::Xaml::Controls::Orientation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::Orientation(winrt::Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::MaximumRowsOrColumns() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumns(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumns(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::MaximumRowsOrColumns(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaximumRowsOrColumns(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_MaximumRowsOrColumns(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_ItemWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemWidth(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemWidth(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_ItemWidth(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_ItemHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ItemHeight(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemHeight(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_ItemHeight(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::FirstCacheIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstCacheIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_FirstCacheIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::FirstVisibleIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FirstVisibleIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_FirstVisibleIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::LastVisibleIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LastVisibleIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_LastVisibleIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::LastCacheIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LastCacheIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_LastCacheIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::ScrollingDirection() const
    {
        winrt::Windows::UI::Xaml::Controls::PanelScrollingDirection value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ScrollingDirection(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_ScrollingDirection(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupHeaderPlacement() const
    {
        winrt::Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupHeaderPlacement(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_GroupHeaderPlacement(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::GroupHeaderPlacement(winrt::Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_GroupHeaderPlacement(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_GroupHeaderPlacement(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::CacheLength() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CacheLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_CacheLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid<D>::CacheLength(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CacheLength(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_CacheLength(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid2<D>::AreStickyGroupHeadersEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreStickyGroupHeadersEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2>**)this;
            check_hresult(_winrt_abi_type->get_AreStickyGroupHeadersEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGrid2<D>::AreStickyGroupHeadersEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AreStickyGroupHeadersEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2>**)this;
            check_hresult(_winrt_abi_type->put_AreStickyGroupHeadersEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::GroupPaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupPaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_GroupPaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::MaximumRowsOrColumnsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumnsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumnsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::ItemWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::ItemHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::GroupHeaderPlacementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupHeaderPlacementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_GroupHeaderPlacementProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics<D>::CacheLengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CacheLengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_CacheLengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IItemsWrapGridStatics2<D>::AreStickyGroupHeadersEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreStickyGroupHeadersEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics2>**)this;
            check_hresult(_winrt_abi_type->get_AreStickyGroupHeadersEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectedItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItems(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectionMode() const
    {
        winrt::Windows::UI::Xaml::Controls::SelectionMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox>**)this;
            check_hresult(_winrt_abi_type->get_SelectionMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectionMode(winrt::Windows::UI::Xaml::Controls::SelectionMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox>**)this;
            check_hresult(_winrt_abi_type->put_SelectionMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox<D>::ScrollIntoView(winrt::Windows::Foundation::IInspectable const& item) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ScrollIntoView(*(void**)(&item)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox>**)this;
            check_hresult(_winrt_abi_type->ScrollIntoView(*(void**)(&item)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox<D>::SelectAll() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectAll());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox>**)this;
            check_hresult(_winrt_abi_type->SelectAll());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox2<D>::SingleSelectionFollowsFocus() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocus(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox2>**)this;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocus(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBox2<D>::SingleSelectionFollowsFocus(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SingleSelectionFollowsFocus(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBox2>**)this;
            check_hresult(_winrt_abi_type->put_SingleSelectionFollowsFocus(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBoxFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListBoxFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListBoxFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBoxFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBoxFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ListBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBoxItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListBoxItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListBoxItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBoxItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBoxItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ListBoxItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBoxStatics<D>::SelectionModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectionModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListBoxStatics2<D>::SingleSelectionFollowsFocusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_ItemsSource(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsSource(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemsSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_ItemsSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_ItemTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_ItemTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::DisplayMemberPath() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayMemberPath(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_DisplayMemberPath(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::DisplayMemberPath(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DisplayMemberPath(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_DisplayMemberPath(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectionMode() const
    {
        winrt::Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_SelectionMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectionMode(winrt::Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_SelectionMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_SelectedIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedIndex(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedIndex(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_SelectedIndex(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItem(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedItem(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedItem(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_SelectedItem(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValue() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedValue(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_SelectedValue(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValue(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedValue(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_SelectedValue(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValuePath() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedValuePath(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_SelectedValuePath(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedValuePath(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedValuePath(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_SelectedValuePath(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::SelectedItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItems(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsPicked(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListPickerFlyout, winrt::Windows::UI::Xaml::Controls::ItemsPickedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ItemsPicked(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->add_ItemsPicked(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsPicked(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListPickerFlyout, winrt::Windows::UI::Xaml::Controls::ItemsPickedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ItemsPicked_revoker>(this, ItemsPicked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ItemsPicked(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ItemsPicked(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            _winrt_abi_type->remove_ItemsPicked(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyout<D>::ShowAtAsync(winrt::Windows::UI::Xaml::FrameworkElement const& target) const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ShowAtAsync(*(void**)(&target), &operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->ShowAtAsync(*(void**)(&target), &operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Foundation::IInspectable>>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::ItemsSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemsSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::ItemTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::DisplayMemberPathProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayMemberPathProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_DisplayMemberPathProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectionModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectionModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedIndexProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedIndexProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedIndexProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedItemProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItemProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItemProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedValueProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedValueProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedValueProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListPickerFlyoutStatics<D>::SelectedValuePathProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedValuePathProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedValuePathProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectedItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItems(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectionMode() const
    {
        winrt::Windows::UI::Xaml::Controls::ListViewSelectionMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_SelectionMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectionMode(winrt::Windows::UI::Xaml::Controls::ListViewSelectionMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->put_SelectionMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsSwipeEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSwipeEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_IsSwipeEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsSwipeEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSwipeEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->put_IsSwipeEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanDragItems() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanDragItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_CanDragItems(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanDragItems(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CanDragItems(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->put_CanDragItems(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanReorderItems() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanReorderItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_CanReorderItems(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::CanReorderItems(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CanReorderItems(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->put_CanReorderItems(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsItemClickEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsItemClickEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_IsItemClickEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IsItemClickEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsItemClickEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->put_IsItemClickEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DataFetchSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DataFetchSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_DataFetchSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DataFetchSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DataFetchSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->put_DataFetchSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingThreshold() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IncrementalLoadingThreshold(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_IncrementalLoadingThreshold(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingThreshold(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IncrementalLoadingThreshold(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->put_IncrementalLoadingThreshold(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingTrigger() const
    {
        winrt::Windows::UI::Xaml::Controls::IncrementalLoadingTrigger value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IncrementalLoadingTrigger(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_IncrementalLoadingTrigger(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::IncrementalLoadingTrigger(winrt::Windows::UI::Xaml::Controls::IncrementalLoadingTrigger const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IncrementalLoadingTrigger(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->put_IncrementalLoadingTrigger(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick(winrt::Windows::UI::Xaml::Controls::ItemClickEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ItemClick(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->add_ItemClick(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::ItemClickEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ItemClick_revoker>(this, ItemClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ItemClick(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ItemClick(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            _winrt_abi_type->remove_ItemClick(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting(winrt::Windows::UI::Xaml::Controls::DragItemsStartingEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DragItemsStarting(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->add_DragItemsStarting(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::DragItemsStartingEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, DragItemsStarting_revoker>(this, DragItemsStarting(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::DragItemsStarting(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DragItemsStarting(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            _winrt_abi_type->remove_DragItemsStarting(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ScrollIntoView(winrt::Windows::Foundation::IInspectable const& item) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ScrollIntoView(*(void**)(&item)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->ScrollIntoView(*(void**)(&item)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::SelectAll() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectAll());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->SelectAll());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::LoadMoreItemsAsync() const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->LoadMoreItemsAsync(&operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->LoadMoreItemsAsync(&operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::UI::Xaml::Data::LoadMoreItemsResult>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::ScrollIntoView(winrt::Windows::Foundation::IInspectable const& item, winrt::Windows::UI::Xaml::Controls::ScrollIntoViewAlignment const& alignment) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ScrollIntoViewWithAlignment(*(void**)(&item), static_cast<int32_t>(alignment)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->ScrollIntoViewWithAlignment(*(void**)(&item), static_cast<int32_t>(alignment)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTransitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTransitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTransitions(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase<D>::HeaderTransitions(winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTransitions(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTransitions(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ShowsScrollingPlaceholders() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowsScrollingPlaceholders(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)this;
            check_hresult(_winrt_abi_type->get_ShowsScrollingPlaceholders(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ShowsScrollingPlaceholders(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ShowsScrollingPlaceholders(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)this;
            check_hresult(_winrt_abi_type->put_ShowsScrollingPlaceholders(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ContainerContentChanging(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ContainerContentChanging(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)this;
            check_hresult(_winrt_abi_type->add_ContainerContentChanging(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ContainerContentChanging(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ContainerContentChanging_revoker>(this, ContainerContentChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::ContainerContentChanging(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ContainerContentChanging(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)this;
            _winrt_abi_type->remove_ContainerContentChanging(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::SetDesiredContainerUpdateDuration(winrt::Windows::Foundation::TimeSpan const& duration) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetDesiredContainerUpdateDuration(impl::bind_in(duration)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)this;
            check_hresult(_winrt_abi_type->SetDesiredContainerUpdateDuration(impl::bind_in(duration)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::Footer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Footer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)this;
            check_hresult(_winrt_abi_type->get_Footer(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::Footer(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Footer(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)this;
            check_hresult(_winrt_abi_type->put_Footer(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FooterTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)this;
            check_hresult(_winrt_abi_type->get_FooterTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FooterTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)this;
            check_hresult(_winrt_abi_type->put_FooterTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTransitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FooterTransitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)this;
            check_hresult(_winrt_abi_type->get_FooterTransitions(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase2<D>::FooterTransitions(winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FooterTransitions(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase2>**)this;
            check_hresult(_winrt_abi_type->put_FooterTransitions(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase3<D>::ReorderMode() const
    {
        winrt::Windows::UI::Xaml::Controls::ListViewReorderMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ReorderMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase3>**)this;
            check_hresult(_winrt_abi_type->get_ReorderMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase3<D>::ReorderMode(winrt::Windows::UI::Xaml::Controls::ListViewReorderMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ReorderMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase3>**)this;
            check_hresult(_winrt_abi_type->put_ReorderMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::SelectedRanges() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedRanges(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)this;
            check_hresult(_winrt_abi_type->get_SelectedRanges(&value));
        }
        return winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::UI::Xaml::Data::ItemIndexRange>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::IsMultiSelectCheckBoxEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsMultiSelectCheckBoxEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)this;
            check_hresult(_winrt_abi_type->get_IsMultiSelectCheckBoxEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::IsMultiSelectCheckBoxEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsMultiSelectCheckBoxEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)this;
            check_hresult(_winrt_abi_type->put_IsMultiSelectCheckBoxEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DragItemsCompleted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DragItemsCompleted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)this;
            check_hresult(_winrt_abi_type->add_DragItemsCompleted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DragItemsCompleted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DragItemsCompleted_revoker>(this, DragItemsCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DragItemsCompleted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DragItemsCompleted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)this;
            _winrt_abi_type->remove_DragItemsCompleted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingItemContainer(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ChoosingItemContainer(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)this;
            check_hresult(_winrt_abi_type->add_ChoosingItemContainer(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingItemContainer(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ChoosingItemContainer_revoker>(this, ChoosingItemContainer(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingItemContainer(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ChoosingItemContainer(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)this;
            _winrt_abi_type->remove_ChoosingItemContainer(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingGroupHeaderContainer(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ChoosingGroupHeaderContainer(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)this;
            check_hresult(_winrt_abi_type->add_ChoosingGroupHeaderContainer(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingGroupHeaderContainer(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ChoosingGroupHeaderContainer_revoker>(this, ChoosingGroupHeaderContainer(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::ChoosingGroupHeaderContainer(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ChoosingGroupHeaderContainer(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)this;
            _winrt_abi_type->remove_ChoosingGroupHeaderContainer(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::SelectRange(winrt::Windows::UI::Xaml::Data::ItemIndexRange const& itemIndexRange) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectRange(*(void**)(&itemIndexRange)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)this;
            check_hresult(_winrt_abi_type->SelectRange(*(void**)(&itemIndexRange)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase4<D>::DeselectRange(winrt::Windows::UI::Xaml::Data::ItemIndexRange const& itemIndexRange) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->DeselectRange(*(void**)(&itemIndexRange)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase4>**)this;
            check_hresult(_winrt_abi_type->DeselectRange(*(void**)(&itemIndexRange)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase5<D>::SingleSelectionFollowsFocus() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocus(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase5>**)this;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocus(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase5<D>::SingleSelectionFollowsFocus(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SingleSelectionFollowsFocus(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase5>**)this;
            check_hresult(_winrt_abi_type->put_SingleSelectionFollowsFocus(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase5<D>::IsDragSource() const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->IsDragSource(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase5>**)this;
            check_hresult(_winrt_abi_type->IsDragSource(&result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase6<D>::TryStartConnectedAnimationAsync(winrt::Windows::UI::Xaml::Media::Animation::ConnectedAnimation const& animation, winrt::Windows::Foundation::IInspectable const& item, param::hstring const& elementName) const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->TryStartConnectedAnimationAsync(*(void**)(&animation), *(void**)(&item), *(void**)(&elementName), &operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase6>**)this;
            check_hresult(_winrt_abi_type->TryStartConnectedAnimationAsync(*(void**)(&animation), *(void**)(&item), *(void**)(&elementName), &operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<bool>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBase6<D>::PrepareConnectedAnimation(param::hstring const& key, winrt::Windows::Foundation::IInspectable const& item, param::hstring const& elementName) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBase6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBase6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->PrepareConnectedAnimation(*(void**)(&key), *(void**)(&item), *(void**)(&elementName), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBase6>**)this;
            check_hresult(_winrt_abi_type->PrepareConnectedAnimation(*(void**)(&key), *(void**)(&item), *(void**)(&elementName), &result));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::ConnectedAnimation{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ListViewBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::SelectionModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectionModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsSwipeEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSwipeEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsSwipeEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::CanDragItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanDragItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanDragItemsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::CanReorderItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanReorderItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanReorderItemsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsItemClickEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsItemClickEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsItemClickEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::DataFetchSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DataFetchSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_DataFetchSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IncrementalLoadingThresholdProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IncrementalLoadingThresholdProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_IncrementalLoadingThresholdProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IncrementalLoadingTriggerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IncrementalLoadingTriggerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_IncrementalLoadingTriggerProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::SemanticZoomOwnerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SemanticZoomOwnerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_SemanticZoomOwnerProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsActiveViewProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsActiveViewProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsActiveViewProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::IsZoomedInViewProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomedInViewProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomedInViewProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics<D>::HeaderTransitionsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTransitionsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTransitionsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::ShowsScrollingPlaceholdersProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowsScrollingPlaceholdersProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ShowsScrollingPlaceholdersProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::FooterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FooterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>**)this;
            check_hresult(_winrt_abi_type->get_FooterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::FooterTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FooterTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>**)this;
            check_hresult(_winrt_abi_type->get_FooterTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics2<D>::FooterTransitionsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FooterTransitionsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>**)this;
            check_hresult(_winrt_abi_type->get_FooterTransitionsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics3<D>::ReorderModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ReorderModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics3>**)this;
            check_hresult(_winrt_abi_type->get_ReorderModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics4<D>::IsMultiSelectCheckBoxEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsMultiSelectCheckBoxEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics4>**)this;
            check_hresult(_winrt_abi_type->get_IsMultiSelectCheckBoxEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewBaseStatics5<D>::SingleSelectionFollowsFocusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics5>**)this;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ListView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewHeaderItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewHeaderItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewHeaderItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewHeaderItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewHeaderItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ListViewHeaderItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewItem<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewItem>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::ListViewItemTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ListViewItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewPersistenceHelperStatics<D>::GetRelativeScrollPosition(winrt::Windows::UI::Xaml::Controls::ListViewBase const& listViewBase, winrt::Windows::UI::Xaml::Controls::ListViewItemToKeyHandler const& itemToKeyHandler) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetRelativeScrollPosition(*(void**)(&listViewBase), *(void**)(&itemToKeyHandler), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>**)this;
            check_hresult(_winrt_abi_type->GetRelativeScrollPosition(*(void**)(&listViewBase), *(void**)(&itemToKeyHandler), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IListViewPersistenceHelperStatics<D>::SetRelativeScrollPositionAsync(winrt::Windows::UI::Xaml::Controls::ListViewBase const& listViewBase, param::hstring const& relativeScrollPosition, winrt::Windows::UI::Xaml::Controls::ListViewKeyToItemHandler const& keyToItemHandler) const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetRelativeScrollPositionAsync(*(void**)(&listViewBase), *(void**)(&relativeScrollPosition), *(void**)(&keyToItemHandler), &operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>**)this;
            check_hresult(_winrt_abi_type->SetRelativeScrollPositionAsync(*(void**)(&listViewBase), *(void**)(&relativeScrollPosition), *(void**)(&keyToItemHandler), &operation));
        }
        return winrt::Windows::Foundation::IAsyncAction{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PosterSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PosterSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_PosterSource(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PosterSource(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PosterSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_PosterSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Source() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Source(winrt::Windows::Foundation::Uri const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsMuted() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsMuted(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_IsMuted(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsMuted(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsMuted(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_IsMuted(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsAudioOnly() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsAudioOnly(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_IsAudioOnly(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AutoPlay() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AutoPlay(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_AutoPlay(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AutoPlay(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AutoPlay(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_AutoPlay(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Volume() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Volume(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_Volume(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Volume(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Volume(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_Volume(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Balance() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Balance(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_Balance(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Balance(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Balance(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_Balance(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::NaturalVideoHeight() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NaturalVideoHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_NaturalVideoHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::NaturalVideoWidth() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NaturalVideoWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_NaturalVideoWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::NaturalDuration() const
    {
        winrt::Windows::UI::Xaml::Duration value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NaturalDuration(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_NaturalDuration(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Position() const
    {
        winrt::Windows::Foundation::TimeSpan value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Position(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_Position(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Position(winrt::Windows::Foundation::TimeSpan const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Position(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_Position(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgress() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DownloadProgress(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_DownloadProgress(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgress() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BufferingProgress(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_BufferingProgress(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DownloadProgressOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_DownloadProgressOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentState() const
    {
        winrt::Windows::UI::Xaml::Media::MediaElementState value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CurrentState(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_CurrentState(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Markers() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Markers(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_Markers(&value));
        }
        return winrt::Windows::UI::Xaml::Media::TimelineMarkerCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CanSeek() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanSeek(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_CanSeek(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CanPause() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanPause(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_CanPause(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioStreamCount() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AudioStreamCount(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_AudioStreamCount(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioStreamIndex() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AudioStreamIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_AudioStreamIndex(&value));
        }
        return winrt::Windows::Foundation::IReference<int32_t>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioStreamIndex(winrt::Windows::Foundation::IReference<int32_t> const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AudioStreamIndex(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_AudioStreamIndex(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PlaybackRate() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaybackRate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_PlaybackRate(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PlaybackRate(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaybackRate(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_PlaybackRate(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsLooping() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsLooping(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_IsLooping(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsLooping(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsLooping(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_IsLooping(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::PlayToSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlayToSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_PlayToSource(&value));
        }
        return winrt::Windows::Media::PlayTo::PlayToSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DefaultPlaybackRate() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultPlaybackRate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_DefaultPlaybackRate(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DefaultPlaybackRate(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DefaultPlaybackRate(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_DefaultPlaybackRate(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AspectRatioWidth() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AspectRatioWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_AspectRatioWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AspectRatioHeight() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AspectRatioHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_AspectRatioHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RealTimePlayback() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RealTimePlayback(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_RealTimePlayback(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RealTimePlayback(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_RealTimePlayback(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_RealTimePlayback(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioCategory() const
    {
        winrt::Windows::UI::Xaml::Media::AudioCategory value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AudioCategory(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_AudioCategory(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioCategory(winrt::Windows::UI::Xaml::Media::AudioCategory const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AudioCategory(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_AudioCategory(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioDeviceType() const
    {
        winrt::Windows::UI::Xaml::Media::AudioDeviceType value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AudioDeviceType(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_AudioDeviceType(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AudioDeviceType(winrt::Windows::UI::Xaml::Media::AudioDeviceType const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AudioDeviceType(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_AudioDeviceType(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::ProtectionManager() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ProtectionManager(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_ProtectionManager(&value));
        }
        return winrt::Windows::Media::Protection::MediaProtectionManager{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::ProtectionManager(winrt::Windows::Media::Protection::MediaProtectionManager const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ProtectionManager(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_ProtectionManager(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoPackingMode() const
    {
        winrt::Windows::UI::Xaml::Media::Stereo3DVideoPackingMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Stereo3DVideoPackingMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_Stereo3DVideoPackingMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoPackingMode(winrt::Windows::UI::Xaml::Media::Stereo3DVideoPackingMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Stereo3DVideoPackingMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_Stereo3DVideoPackingMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoRenderMode() const
    {
        winrt::Windows::UI::Xaml::Media::Stereo3DVideoRenderMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Stereo3DVideoRenderMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_Stereo3DVideoRenderMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stereo3DVideoRenderMode(winrt::Windows::UI::Xaml::Media::Stereo3DVideoRenderMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Stereo3DVideoRenderMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->put_Stereo3DVideoRenderMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::IsStereo3DVideo() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsStereo3DVideo(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_IsStereo3DVideo(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_MediaOpened(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->add_MediaOpened(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, MediaOpened_revoker>(this, MediaOpened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaOpened(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            _winrt_abi_type->remove_MediaOpened(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            _winrt_abi_type->remove_MediaOpened(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_MediaEnded(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->add_MediaEnded(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, MediaEnded_revoker>(this, MediaEnded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaEnded(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            _winrt_abi_type->remove_MediaEnded(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            _winrt_abi_type->remove_MediaEnded(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed(winrt::Windows::UI::Xaml::ExceptionRoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_MediaFailed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->add_MediaFailed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed(auto_revoke_t, winrt::Windows::UI::Xaml::ExceptionRoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, MediaFailed_revoker>(this, MediaFailed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MediaFailed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            _winrt_abi_type->remove_MediaFailed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            _winrt_abi_type->remove_MediaFailed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DownloadProgressChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->add_DownloadProgressChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, DownloadProgressChanged_revoker>(this, DownloadProgressChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::DownloadProgressChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DownloadProgressChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            _winrt_abi_type->remove_DownloadProgressChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_BufferingProgressChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->add_BufferingProgressChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, BufferingProgressChanged_revoker>(this, BufferingProgressChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::BufferingProgressChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            _winrt_abi_type->remove_BufferingProgressChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            _winrt_abi_type->remove_BufferingProgressChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CurrentStateChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->add_CurrentStateChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, CurrentStateChanged_revoker>(this, CurrentStateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CurrentStateChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CurrentStateChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            _winrt_abi_type->remove_CurrentStateChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached(winrt::Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_MarkerReached(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->add_MarkerReached(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached(auto_revoke_t, winrt::Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, MarkerReached_revoker>(this, MarkerReached(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::MarkerReached(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            _winrt_abi_type->remove_MarkerReached(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            _winrt_abi_type->remove_MarkerReached(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged(winrt::Windows::UI::Xaml::Media::RateChangedRoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_RateChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->add_RateChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged(auto_revoke_t, winrt::Windows::UI::Xaml::Media::RateChangedRoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, RateChanged_revoker>(this, RateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RateChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            _winrt_abi_type->remove_RateChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            _winrt_abi_type->remove_RateChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_VolumeChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->add_VolumeChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, VolumeChanged_revoker>(this, VolumeChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::VolumeChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            _winrt_abi_type->remove_VolumeChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            _winrt_abi_type->remove_VolumeChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SeekCompleted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->add_SeekCompleted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SeekCompleted_revoker>(this, SeekCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SeekCompleted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SeekCompleted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            _winrt_abi_type->remove_SeekCompleted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Stop() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Stop());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->Stop());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Play() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Play());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->Play());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::Pause() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Pause());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->Pause());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::CanPlayType(param::hstring const& type) const
    {
        winrt::Windows::UI::Xaml::Media::MediaCanPlayResponse result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CanPlayType(*(void**)(&type), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->CanPlayType(*(void**)(&type), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::SetSource(winrt::Windows::Storage::Streams::IRandomAccessStream const& stream, param::hstring const& mimeType) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetSource(*(void**)(&stream), *(void**)(&mimeType)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->SetSource(*(void**)(&stream), *(void**)(&mimeType)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::GetAudioStreamLanguage(winrt::Windows::Foundation::IReference<int32_t> const& index) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAudioStreamLanguage(*(void**)(&index), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->GetAudioStreamLanguage(*(void**)(&index), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AddAudioEffect(param::hstring const& effectID, bool effectOptional, winrt::Windows::Foundation::Collections::IPropertySet const& effectConfiguration) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->AddAudioEffect(*(void**)(&effectID), effectOptional, *(void**)(&effectConfiguration)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->AddAudioEffect(*(void**)(&effectID), effectOptional, *(void**)(&effectConfiguration)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::AddVideoEffect(param::hstring const& effectID, bool effectOptional, winrt::Windows::Foundation::Collections::IPropertySet const& effectConfiguration) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->AddVideoEffect(*(void**)(&effectID), effectOptional, *(void**)(&effectConfiguration)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->AddVideoEffect(*(void**)(&effectID), effectOptional, *(void**)(&effectConfiguration)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::RemoveAllEffects() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RemoveAllEffects());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->RemoveAllEffects());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement<D>::ActualStereo3DVideoPackingMode() const
    {
        winrt::Windows::UI::Xaml::Media::Stereo3DVideoPackingMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ActualStereo3DVideoPackingMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement>**)this;
            check_hresult(_winrt_abi_type->get_ActualStereo3DVideoPackingMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::AreTransportControlsEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreTransportControlsEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)this;
            check_hresult(_winrt_abi_type->get_AreTransportControlsEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::AreTransportControlsEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AreTransportControlsEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)this;
            check_hresult(_winrt_abi_type->put_AreTransportControlsEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::Stretch() const
    {
        winrt::Windows::UI::Xaml::Media::Stretch value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)this;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::Stretch(winrt::Windows::UI::Xaml::Media::Stretch const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)this;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::IsFullWindow() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFullWindow(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)this;
            check_hresult(_winrt_abi_type->get_IsFullWindow(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::IsFullWindow(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsFullWindow(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)this;
            check_hresult(_winrt_abi_type->put_IsFullWindow(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::SetMediaStreamSource(winrt::Windows::Media::Core::IMediaSource const& source) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetMediaStreamSource(*(void**)(&source)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)this;
            check_hresult(_winrt_abi_type->SetMediaStreamSource(*(void**)(&source)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::PlayToPreferredSourceUri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlayToPreferredSourceUri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)this;
            check_hresult(_winrt_abi_type->get_PlayToPreferredSourceUri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement2<D>::PlayToPreferredSourceUri(winrt::Windows::Foundation::Uri const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlayToPreferredSourceUri(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement2>**)this;
            check_hresult(_winrt_abi_type->put_PlayToPreferredSourceUri(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::TransportControls() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TransportControls(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)this;
            check_hresult(_winrt_abi_type->get_TransportControls(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::MediaTransportControls{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::TransportControls(winrt::Windows::UI::Xaml::Controls::MediaTransportControls const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TransportControls(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)this;
            check_hresult(_winrt_abi_type->put_TransportControls(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::PartialMediaFailureDetected(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::MediaElement, winrt::Windows::UI::Xaml::Media::PartialMediaFailureDetectedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PartialMediaFailureDetected(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)this;
            check_hresult(_winrt_abi_type->add_PartialMediaFailureDetected(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::PartialMediaFailureDetected(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::MediaElement, winrt::Windows::UI::Xaml::Media::PartialMediaFailureDetectedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PartialMediaFailureDetected_revoker>(this, PartialMediaFailureDetected(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::PartialMediaFailureDetected(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PartialMediaFailureDetected(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)this;
            _winrt_abi_type->remove_PartialMediaFailureDetected(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::SetPlaybackSource(winrt::Windows::Media::Playback::IMediaPlaybackSource const& source) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetPlaybackSource(*(void**)(&source)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)this;
            check_hresult(_winrt_abi_type->SetPlaybackSource(*(void**)(&source)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElement3<D>::GetAsCastingSource() const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElement3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElement3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAsCastingSource(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElement3>**)this;
            check_hresult(_winrt_abi_type->GetAsCastingSource(&result));
        }
        return winrt::Windows::Media::Casting::CastingSource{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PosterSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PosterSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_PosterSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::SourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsMutedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsMutedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsMutedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsAudioOnlyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsAudioOnlyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsAudioOnlyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AutoPlayProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AutoPlayProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_AutoPlayProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::VolumeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VolumeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_VolumeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::BalanceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BalanceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_BalanceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::NaturalVideoHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NaturalVideoHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_NaturalVideoHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::NaturalVideoWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NaturalVideoWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_NaturalVideoWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::NaturalDurationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NaturalDurationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_NaturalDurationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PositionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PositionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_PositionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::DownloadProgressProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DownloadProgressProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_DownloadProgressProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::BufferingProgressProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BufferingProgressProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_BufferingProgressProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::DownloadProgressOffsetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DownloadProgressOffsetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_DownloadProgressOffsetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::CurrentStateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CurrentStateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_CurrentStateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::CanSeekProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanSeekProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanSeekProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::CanPauseProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanPauseProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanPauseProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioStreamCountProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AudioStreamCountProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_AudioStreamCountProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioStreamIndexProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AudioStreamIndexProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_AudioStreamIndexProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PlaybackRateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaybackRateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlaybackRateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsLoopingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsLoopingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsLoopingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::PlayToSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlayToSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlayToSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::DefaultPlaybackRateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultPlaybackRateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_DefaultPlaybackRateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AspectRatioWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AspectRatioWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_AspectRatioWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AspectRatioHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AspectRatioHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_AspectRatioHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::RealTimePlaybackProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RealTimePlaybackProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_RealTimePlaybackProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioCategoryProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AudioCategoryProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_AudioCategoryProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::AudioDeviceTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AudioDeviceTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_AudioDeviceTypeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::ProtectionManagerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ProtectionManagerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_ProtectionManagerProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::Stereo3DVideoPackingModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Stereo3DVideoPackingModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_Stereo3DVideoPackingModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::Stereo3DVideoRenderModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Stereo3DVideoRenderModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_Stereo3DVideoRenderModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::IsStereo3DVideoProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsStereo3DVideoProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsStereo3DVideoProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics<D>::ActualStereo3DVideoPackingModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ActualStereo3DVideoPackingModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_ActualStereo3DVideoPackingModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::AreTransportControlsEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreTransportControlsEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>**)this;
            check_hresult(_winrt_abi_type->get_AreTransportControlsEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::StretchProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>**)this;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::IsFullWindowProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFullWindowProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsFullWindowProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaElementStatics2<D>::PlayToPreferredSourceUriProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlayToPreferredSourceUriProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PlayToPreferredSourceUriProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Source() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        return winrt::Windows::Media::Playback::IMediaPlaybackSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Source(winrt::Windows::Media::Playback::IMediaPlaybackSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::TransportControls() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TransportControls(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->get_TransportControls(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::MediaTransportControls{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::TransportControls(winrt::Windows::UI::Xaml::Controls::MediaTransportControls const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TransportControls(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->put_TransportControls(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AreTransportControlsEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreTransportControlsEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->get_AreTransportControlsEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AreTransportControlsEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AreTransportControlsEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->put_AreTransportControlsEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::PosterSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PosterSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->get_PosterSource(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::PosterSource(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PosterSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->put_PosterSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Stretch() const
    {
        winrt::Windows::UI::Xaml::Media::Stretch value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::Stretch(winrt::Windows::UI::Xaml::Media::Stretch const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AutoPlay() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AutoPlay(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->get_AutoPlay(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::AutoPlay(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AutoPlay(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->put_AutoPlay(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::IsFullWindow() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFullWindow(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->get_IsFullWindow(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::IsFullWindow(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsFullWindow(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->put_IsFullWindow(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::MediaPlayer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MediaPlayer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->get_MediaPlayer(&value));
        }
        return winrt::Windows::Media::Playback::MediaPlayer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElement<D>::SetMediaPlayer(winrt::Windows::Media::Playback::MediaPlayer const& mediaPlayer) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetMediaPlayer(*(void**)(&mediaPlayer)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>**)this;
            check_hresult(_winrt_abi_type->SetMediaPlayer(*(void**)(&mediaPlayer)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::MediaPlayerElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::SourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::AreTransportControlsEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreTransportControlsEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_AreTransportControlsEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::PosterSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PosterSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_PosterSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::StretchProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::AutoPlayProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AutoPlayProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_AutoPlayProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::IsFullWindowProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFullWindowProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsFullWindowProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerElementStatics<D>::MediaPlayerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MediaPlayerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>**)this;
            check_hresult(_winrt_abi_type->get_MediaPlayerProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::MediaPlayer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MediaPlayer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)this;
            check_hresult(_winrt_abi_type->get_MediaPlayer(&value));
        }
        return winrt::Windows::Media::Playback::MediaPlayer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::MediaPlayer(winrt::Windows::Media::Playback::MediaPlayer const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MediaPlayer(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)this;
            check_hresult(_winrt_abi_type->put_MediaPlayer(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::Stretch() const
    {
        winrt::Windows::UI::Xaml::Media::Stretch value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)this;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::Stretch(winrt::Windows::UI::Xaml::Media::Stretch const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)this;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::IsFullWindow() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFullWindow(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)this;
            check_hresult(_winrt_abi_type->get_IsFullWindow(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenter<D>::IsFullWindow(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsFullWindow(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>**)this;
            check_hresult(_winrt_abi_type->put_IsFullWindow(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::MediaPlayerPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterStatics<D>::MediaPlayerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MediaPlayerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_MediaPlayerProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterStatics<D>::StretchProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaPlayerPresenterStatics<D>::IsFullWindowProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFullWindowProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsFullWindowProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFullWindowButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsFullWindowButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsFullWindowButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsFullWindowButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFullWindowEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsFullWindowEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFullWindowEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsFullWindowEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsFullWindowEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsZoomButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsZoomButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsZoomEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsZoomEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsZoomEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFastForwardButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsFastForwardButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsFastForwardButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsFastForwardButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFastForwardEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsFastForwardEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastForwardEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsFastForwardEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsFastForwardEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFastRewindButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsFastRewindButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsFastRewindButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsFastRewindButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFastRewindEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsFastRewindEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsFastRewindEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsFastRewindEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsFastRewindEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsStopButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsStopButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsStopButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsStopButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsStopEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsStopEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsStopEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsStopEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsStopEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsVolumeButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsVolumeButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsVolumeButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsVolumeButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsVolumeEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsVolumeEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsVolumeEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsVolumeEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsVolumeEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPlaybackRateButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsPlaybackRateButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsPlaybackRateButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsPlaybackRateButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPlaybackRateEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsPlaybackRateEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsPlaybackRateEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsPlaybackRateEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsPlaybackRateEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekBarVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSeekBarVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsSeekBarVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekBarVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSeekBarVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsSeekBarVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSeekEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsSeekEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsSeekEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSeekEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsSeekEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsCompact() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCompact(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->get_IsCompact(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls<D>::IsCompact(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsCompact(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>**)this;
            check_hresult(_winrt_abi_type->put_IsCompact(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSkipForwardButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->get_IsSkipForwardButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSkipForwardButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->put_IsSkipForwardButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSkipForwardEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->get_IsSkipForwardEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipForwardEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSkipForwardEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->put_IsSkipForwardEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSkipBackwardButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->get_IsSkipBackwardButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSkipBackwardButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->put_IsSkipBackwardButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSkipBackwardEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->get_IsSkipBackwardEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsSkipBackwardEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSkipBackwardEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->put_IsSkipBackwardEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsNextTrackButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsNextTrackButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->get_IsNextTrackButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsNextTrackButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsNextTrackButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->put_IsNextTrackButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsPreviousTrackButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPreviousTrackButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->get_IsPreviousTrackButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::IsPreviousTrackButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsPreviousTrackButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->put_IsPreviousTrackButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::FastPlayFallbackBehaviour() const
    {
        winrt::Windows::UI::Xaml::Media::FastPlayFallbackBehaviour value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FastPlayFallbackBehaviour(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->get_FastPlayFallbackBehaviour(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::FastPlayFallbackBehaviour(winrt::Windows::UI::Xaml::Media::FastPlayFallbackBehaviour const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FastPlayFallbackBehaviour(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->put_FastPlayFallbackBehaviour(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::ThumbnailRequested(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::MediaTransportControls, winrt::Windows::UI::Xaml::Media::MediaTransportControlsThumbnailRequestedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ThumbnailRequested(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            check_hresult(_winrt_abi_type->add_ThumbnailRequested(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::ThumbnailRequested(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::MediaTransportControls, winrt::Windows::UI::Xaml::Media::MediaTransportControlsThumbnailRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ThumbnailRequested_revoker>(this, ThumbnailRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls2<D>::ThumbnailRequested(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ThumbnailRequested(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>**)this;
            _winrt_abi_type->remove_ThumbnailRequested(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::ShowAndHideAutomatically() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowAndHideAutomatically(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)this;
            check_hresult(_winrt_abi_type->get_ShowAndHideAutomatically(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::ShowAndHideAutomatically(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ShowAndHideAutomatically(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)this;
            check_hresult(_winrt_abi_type->put_ShowAndHideAutomatically(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsRepeatEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)this;
            check_hresult(_winrt_abi_type->get_IsRepeatEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsRepeatEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)this;
            check_hresult(_winrt_abi_type->put_IsRepeatEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsRepeatButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)this;
            check_hresult(_winrt_abi_type->get_IsRepeatButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::IsRepeatButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsRepeatButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)this;
            check_hresult(_winrt_abi_type->put_IsRepeatButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::Show() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Show());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)this;
            check_hresult(_winrt_abi_type->Show());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls3<D>::Hide() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Hide());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>**)this;
            check_hresult(_winrt_abi_type->Hide());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCompactOverlayButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>**)this;
            check_hresult(_winrt_abi_type->get_IsCompactOverlayButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsCompactOverlayButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>**)this;
            check_hresult(_winrt_abi_type->put_IsCompactOverlayButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCompactOverlayEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>**)this;
            check_hresult(_winrt_abi_type->get_IsCompactOverlayEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControls4<D>::IsCompactOverlayEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsCompactOverlayEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>**)this;
            check_hresult(_winrt_abi_type->put_IsCompactOverlayEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::MediaTransportControls{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsHelperStatics<D>::DropoutOrderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DropoutOrderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>**)this;
            check_hresult(_winrt_abi_type->get_DropoutOrderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsHelperStatics<D>::GetDropoutOrder(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetDropoutOrder(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>**)this;
            check_hresult(_winrt_abi_type->GetDropoutOrder(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IReference<int32_t>{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsHelperStatics<D>::SetDropoutOrder(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IReference<int32_t> const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetDropoutOrder(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>**)this;
            check_hresult(_winrt_abi_type->SetDropoutOrder(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFullWindowButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFullWindowButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsFullWindowButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFullWindowEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFullWindowEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsFullWindowEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsZoomButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsZoomEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastForwardButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFastForwardButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsFastForwardButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastForwardEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFastForwardEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsFastForwardEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastRewindButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFastRewindButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsFastRewindButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsFastRewindEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsFastRewindEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsFastRewindEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsStopButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsStopButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsStopButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsStopEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsStopEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsStopEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsVolumeButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsVolumeButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsVolumeButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsVolumeEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsVolumeEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsVolumeEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsPlaybackRateButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPlaybackRateButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsPlaybackRateButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsPlaybackRateEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPlaybackRateEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsPlaybackRateEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsSeekBarVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSeekBarVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsSeekBarVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsSeekEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSeekEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsSeekEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics<D>::IsCompactProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCompactProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsCompactProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipForwardButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSkipForwardButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsSkipForwardButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipForwardEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSkipForwardEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsSkipForwardEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipBackwardButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSkipBackwardButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsSkipBackwardButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsSkipBackwardEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSkipBackwardEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsSkipBackwardEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsNextTrackButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsNextTrackButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsNextTrackButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::IsPreviousTrackButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPreviousTrackButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsPreviousTrackButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics2<D>::FastPlayFallbackBehaviourProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FastPlayFallbackBehaviourProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>**)this;
            check_hresult(_winrt_abi_type->get_FastPlayFallbackBehaviourProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics3<D>::ShowAndHideAutomaticallyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowAndHideAutomaticallyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>**)this;
            check_hresult(_winrt_abi_type->get_ShowAndHideAutomaticallyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics3<D>::IsRepeatEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsRepeatEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsRepeatEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics3<D>::IsRepeatButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsRepeatButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsRepeatButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics4<D>::IsCompactOverlayButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCompactOverlayButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>**)this;
            check_hresult(_winrt_abi_type->get_IsCompactOverlayButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMediaTransportControlsStatics4<D>::IsCompactOverlayEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCompactOverlayEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>**)this;
            check_hresult(_winrt_abi_type->get_IsCompactOverlayEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBar<D>::Items() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBar>**)this;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::MenuBarItem>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuBarFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuBarFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::MenuBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItem<D>::Title() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuBarItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Title(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItem>**)this;
            check_hresult(_winrt_abi_type->get_Title(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItem<D>::Title(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuBarItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Title(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItem>**)this;
            check_hresult(_winrt_abi_type->put_Title(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItem<D>::Items() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuBarItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItem>**)this;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::MenuBarItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItemFlyoutFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::MenuBarItemFlyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItemStatics<D>::TitleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TitleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_TitleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarItemStatics<D>::ItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuBarStatics<D>::ItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuBarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuBarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuBarStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyout<D>::Items() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyout>**)this;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyout<D>::MenuFlyoutPresenterStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuFlyoutPresenterStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyout>**)this;
            check_hresult(_winrt_abi_type->get_MenuFlyoutPresenterStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyout<D>::MenuFlyoutPresenterStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MenuFlyoutPresenterStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyout>**)this;
            check_hresult(_winrt_abi_type->put_MenuFlyoutPresenterStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyout2<D>::ShowAt(winrt::Windows::UI::Xaml::UIElement const& targetElement, winrt::Windows::Foundation::Point const& point) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyout2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyout2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyout2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ShowAt(*(void**)(&targetElement), impl::bind_in(point)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyout2>**)this;
            check_hresult(_winrt_abi_type->ShowAt(*(void**)(&targetElement), impl::bind_in(point)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::MenuFlyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Text() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Text(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Command() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Command(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->get_Command(&value));
        }
        return winrt::Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Command(winrt::Windows::UI::Xaml::Input::ICommand const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Command(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->put_Command(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::CommandParameter() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandParameter(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->get_CommandParameter(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::CommandParameter(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CommandParameter(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->put_CommandParameter(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Click(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->add_Click(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Click_revoker>(this, Click(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem<D>::Click(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Click(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>**)this;
            _winrt_abi_type->remove_Click(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem2<D>::Icon() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Icon(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2>**)this;
            check_hresult(_winrt_abi_type->get_Icon(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem2<D>::Icon(winrt::Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Icon(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2>**)this;
            check_hresult(_winrt_abi_type->put_Icon(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem3<D>::KeyboardAcceleratorTextOverride() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverride(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3>**)this;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverride(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem3<D>::KeyboardAcceleratorTextOverride(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_KeyboardAcceleratorTextOverride(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3>**)this;
            check_hresult(_winrt_abi_type->put_KeyboardAcceleratorTextOverride(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItem3<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::MenuFlyoutItemTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::MenuFlyoutItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics<D>::TextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics<D>::CommandProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_CommandProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics<D>::CommandParameterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandParameterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_CommandParameterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics2<D>::IconProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IconProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IconProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutItemStatics3<D>::KeyboardAcceleratorTextOverrideProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverrideProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3>**)this;
            check_hresult(_winrt_abi_type->get_KeyboardAcceleratorTextOverrideProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenter2<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::MenuFlyoutPresenterTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenter3<D>::IsDefaultShadowEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3>**)this;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenter3<D>::IsDefaultShadowEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsDefaultShadowEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3>**)this;
            check_hresult(_winrt_abi_type->put_IsDefaultShadowEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenterFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::MenuFlyoutPresenter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutPresenterStatics3<D>::IsDefaultShadowEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSeparatorFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::MenuFlyoutSeparator{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutStatics<D>::MenuFlyoutPresenterStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuFlyoutPresenterStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_MenuFlyoutPresenterStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem<D>::Items() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>**)this;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem<D>::Text() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>**)this;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem<D>::Text(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>**)this;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem2<D>::Icon() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Icon(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2>**)this;
            check_hresult(_winrt_abi_type->get_Icon(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItem2<D>::Icon(winrt::Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Icon(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2>**)this;
            check_hresult(_winrt_abi_type->put_Icon(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItemStatics<D>::TextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IMenuFlyoutSubItemStatics2<D>::IconProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IconProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IconProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigate<D>::Navigate(winrt::Windows::UI::Xaml::Interop::TypeName const& sourcePageType) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigate>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigate, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigate>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Navigate(impl::bind_in(sourcePageType), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigate>**)this;
            check_hresult(_winrt_abi_type->Navigate(impl::bind_in(sourcePageType), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneOpen() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPaneOpen(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_IsPaneOpen(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneOpen(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsPaneOpen(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_IsPaneOpen(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactModeThresholdWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompactModeThresholdWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_CompactModeThresholdWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactModeThresholdWidth(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CompactModeThresholdWidth(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_CompactModeThresholdWidth(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::ExpandedModeThresholdWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExpandedModeThresholdWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_ExpandedModeThresholdWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::ExpandedModeThresholdWidth(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ExpandedModeThresholdWidth(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_ExpandedModeThresholdWidth(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneFooter() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneFooter(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_PaneFooter(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneFooter(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PaneFooter(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_PaneFooter(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::NavigationViewDisplayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_DisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsSettingsVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSettingsVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_IsSettingsVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsSettingsVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSettingsVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_IsSettingsVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneToggleButtonVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPaneToggleButtonVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_IsPaneToggleButtonVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::IsPaneToggleButtonVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsPaneToggleButtonVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_IsPaneToggleButtonVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::AlwaysShowHeader() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlwaysShowHeader(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_AlwaysShowHeader(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::AlwaysShowHeader(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AlwaysShowHeader(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_AlwaysShowHeader(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactPaneLength() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompactPaneLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_CompactPaneLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::CompactPaneLength(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CompactPaneLength(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_CompactPaneLength(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::OpenPaneLength() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OpenPaneLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_OpenPaneLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::OpenPaneLength(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OpenPaneLength(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_OpenPaneLength(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneToggleButtonStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneToggleButtonStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_PaneToggleButtonStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::PaneToggleButtonStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PaneToggleButtonStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_PaneToggleButtonStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectedItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItem(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectedItem(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedItem(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_SelectedItem(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_MenuItems(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemsSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItemsSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_MenuItemsSource(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemsSource(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MenuItemsSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_MenuItemsSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::SettingsItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SettingsItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_SettingsItem(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::AutoSuggestBox() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AutoSuggestBox(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_AutoSuggestBox(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::AutoSuggestBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::AutoSuggestBox(winrt::Windows::UI::Xaml::Controls::AutoSuggestBox const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AutoSuggestBox(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_AutoSuggestBox(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItemTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_MenuItemTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MenuItemTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_MenuItemTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplateSelector() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItemTemplateSelector(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_MenuItemTemplateSelector(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemTemplateSelector(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MenuItemTemplateSelector(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_MenuItemTemplateSelector(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItemContainerStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_MenuItemContainerStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MenuItemContainerStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_MenuItemContainerStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyleSelector() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItemContainerStyleSelector(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->get_MenuItemContainerStyleSelector(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::StyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemContainerStyleSelector(winrt::Windows::UI::Xaml::Controls::StyleSelector const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MenuItemContainerStyleSelector(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->put_MenuItemContainerStyleSelector(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::MenuItemFromContainer(winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->MenuItemFromContainer(*(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->MenuItemFromContainer(*(void**)(&container), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::ContainerFromMenuItem(winrt::Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ContainerFromMenuItem(*(void**)(&item), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->ContainerFromMenuItem(*(void**)(&item), &result));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectionChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectionChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::ItemInvoked(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ItemInvoked(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->add_ItemInvoked(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::ItemInvoked(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ItemInvoked_revoker>(this, ItemInvoked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::ItemInvoked(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ItemInvoked(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            _winrt_abi_type->remove_ItemInvoked(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayModeChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DisplayModeChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            check_hresult(_winrt_abi_type->add_DisplayModeChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayModeChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DisplayModeChanged_revoker>(this, DisplayModeChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView<D>::DisplayModeChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DisplayModeChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView>**)this;
            _winrt_abi_type->remove_DisplayModeChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackButtonVisible() const
    {
        winrt::Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsBackButtonVisible(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            check_hresult(_winrt_abi_type->get_IsBackButtonVisible(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackButtonVisible(winrt::Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsBackButtonVisible(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            check_hresult(_winrt_abi_type->put_IsBackButtonVisible(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsBackEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            check_hresult(_winrt_abi_type->get_IsBackEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::IsBackEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsBackEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            check_hresult(_winrt_abi_type->put_IsBackEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneTitle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneTitle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            check_hresult(_winrt_abi_type->get_PaneTitle(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneTitle(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PaneTitle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            check_hresult(_winrt_abi_type->put_PaneTitle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::BackRequested(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_BackRequested(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            check_hresult(_winrt_abi_type->add_BackRequested(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::BackRequested(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, BackRequested_revoker>(this, BackRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::BackRequested(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_BackRequested(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            _winrt_abi_type->remove_BackRequested(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosed(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PaneClosed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            check_hresult(_winrt_abi_type->add_PaneClosed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneClosed_revoker>(this, PaneClosed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PaneClosed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            _winrt_abi_type->remove_PaneClosed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosing(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PaneClosing(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            check_hresult(_winrt_abi_type->add_PaneClosing(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosing(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PaneClosing_revoker>(this, PaneClosing(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneClosing(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PaneClosing(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            _winrt_abi_type->remove_PaneClosing(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpened(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PaneOpened(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            check_hresult(_winrt_abi_type->add_PaneOpened(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpened(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneOpened_revoker>(this, PaneOpened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpened(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PaneOpened(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            _winrt_abi_type->remove_PaneOpened(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpening(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PaneOpening(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            check_hresult(_winrt_abi_type->add_PaneOpening(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpening(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneOpening_revoker>(this, PaneOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView2<D>::PaneOpening(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PaneOpening(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView2>**)this;
            _winrt_abi_type->remove_PaneOpening(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneDisplayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneDisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->get_PaneDisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneDisplayMode(winrt::Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PaneDisplayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->put_PaneDisplayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneHeader() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneHeader(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->get_PaneHeader(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneHeader(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PaneHeader(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->put_PaneHeader(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneCustomContent() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneCustomContent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->get_PaneCustomContent(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::PaneCustomContent(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PaneCustomContent(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->put_PaneCustomContent(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ContentOverlay() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentOverlay(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->get_ContentOverlay(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ContentOverlay(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContentOverlay(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->put_ContentOverlay(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::IsPaneVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPaneVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->get_IsPaneVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::IsPaneVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsPaneVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->put_IsPaneVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::SelectionFollowsFocus() const
    {
        winrt::Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFollowsFocus(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFollowsFocus(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::SelectionFollowsFocus(winrt::Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionFollowsFocus(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->put_SelectionFollowsFocus(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::NavigationViewTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ShoulderNavigationEnabled() const
    {
        winrt::Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShoulderNavigationEnabled(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->get_ShoulderNavigationEnabled(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::ShoulderNavigationEnabled(winrt::Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ShoulderNavigationEnabled(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->put_ShoulderNavigationEnabled(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::OverflowLabelMode() const
    {
        winrt::Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OverflowLabelMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->get_OverflowLabelMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationView3<D>::OverflowLabelMode(winrt::Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OverflowLabelMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationView3>**)this;
            check_hresult(_winrt_abi_type->put_OverflowLabelMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewDisplayModeChangedEventArgs<D>::DisplayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::NavigationViewDisplayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_DisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::NavigationView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItem<D>::Icon() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Icon(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItem>**)this;
            check_hresult(_winrt_abi_type->get_Icon(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::IconElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItem<D>::Icon(winrt::Windows::UI::Xaml::Controls::IconElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Icon(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItem>**)this;
            check_hresult(_winrt_abi_type->put_Icon(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItem<D>::CompactPaneLength() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompactPaneLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItem>**)this;
            check_hresult(_winrt_abi_type->get_CompactPaneLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItem2<D>::SelectsOnInvoked() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItem2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItem2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItem2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectsOnInvoked(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItem2>**)this;
            check_hresult(_winrt_abi_type->get_SelectsOnInvoked(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItem2<D>::SelectsOnInvoked(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItem2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItem2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItem2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectsOnInvoked(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItem2>**)this;
            check_hresult(_winrt_abi_type->put_SelectsOnInvoked(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::NavigationViewItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemHeaderFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::NavigationViewItemHeader{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs<D>::InvokedItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InvokedItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_InvokedItem(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs<D>::IsSettingsInvoked() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSettingsInvoked(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_IsSettingsInvoked(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs2<D>::InvokedItemContainer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InvokedItemContainer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2>**)this;
            check_hresult(_winrt_abi_type->get_InvokedItemContainer(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::NavigationViewItemBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemInvokedEventArgs2<D>::RecommendedNavigationTransitionInfo() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RecommendedNavigationTransitionInfo(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2>**)this;
            check_hresult(_winrt_abi_type->get_RecommendedNavigationTransitionInfo(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemSeparatorFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::NavigationViewItemSeparator{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemStatics<D>::IconProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IconProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_IconProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemStatics<D>::CompactPaneLengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompactPaneLengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_CompactPaneLengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewItemStatics2<D>::SelectsOnInvokedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectsOnInvokedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SelectsOnInvokedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewListFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewListFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewListFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewListFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewListFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::NavigationViewList{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewPaneClosingEventArgs<D>::Cancel() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewPaneClosingEventArgs<D>::Cancel(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs<D>::SelectedItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItem(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs<D>::IsSettingsSelected() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSettingsSelected(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_IsSettingsSelected(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs2<D>::SelectedItemContainer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItemContainer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItemContainer(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::NavigationViewItemBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewSelectionChangedEventArgs2<D>::RecommendedNavigationTransitionInfo() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RecommendedNavigationTransitionInfo(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2>**)this;
            check_hresult(_winrt_abi_type->get_RecommendedNavigationTransitionInfo(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::IsPaneOpenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPaneOpenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsPaneOpenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::CompactModeThresholdWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompactModeThresholdWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_CompactModeThresholdWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::ExpandedModeThresholdWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExpandedModeThresholdWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_ExpandedModeThresholdWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::PaneFooterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneFooterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaneFooterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::DisplayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_DisplayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::IsSettingsVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSettingsVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsSettingsVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::IsPaneToggleButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPaneToggleButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsPaneToggleButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::AlwaysShowHeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlwaysShowHeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlwaysShowHeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::CompactPaneLengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompactPaneLengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_CompactPaneLengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::OpenPaneLengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OpenPaneLengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_OpenPaneLengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::PaneToggleButtonStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneToggleButtonStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaneToggleButtonStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MenuItemsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemsSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItemsSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MenuItemsSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::SelectedItemProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItemProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItemProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::SettingsItemProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SettingsItemProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_SettingsItemProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::AutoSuggestBoxProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AutoSuggestBoxProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_AutoSuggestBoxProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItemTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MenuItemTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemTemplateSelectorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItemTemplateSelectorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MenuItemTemplateSelectorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemContainerStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItemContainerStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MenuItemContainerStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics<D>::MenuItemContainerStyleSelectorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MenuItemContainerStyleSelectorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MenuItemContainerStyleSelectorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics2<D>::IsBackButtonVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsBackButtonVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsBackButtonVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics2<D>::IsBackEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsBackEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsBackEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics2<D>::PaneTitleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneTitleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PaneTitleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::PaneDisplayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneDisplayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)this;
            check_hresult(_winrt_abi_type->get_PaneDisplayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::PaneHeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneHeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)this;
            check_hresult(_winrt_abi_type->get_PaneHeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::PaneCustomContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneCustomContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)this;
            check_hresult(_winrt_abi_type->get_PaneCustomContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::ContentOverlayProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentOverlayProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)this;
            check_hresult(_winrt_abi_type->get_ContentOverlayProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::IsPaneVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPaneVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsPaneVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::SelectionFollowsFocusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFollowsFocusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFollowsFocusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::TemplateSettingsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettingsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettingsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::ShoulderNavigationEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShoulderNavigationEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)this;
            check_hresult(_winrt_abi_type->get_ShoulderNavigationEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewStatics3<D>::OverflowLabelModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OverflowLabelModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>**)this;
            check_hresult(_winrt_abi_type->get_OverflowLabelModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::TopPadding() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopPadding(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)this;
            check_hresult(_winrt_abi_type->get_TopPadding(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::OverflowButtonVisibility() const
    {
        winrt::Windows::UI::Xaml::Visibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OverflowButtonVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)this;
            check_hresult(_winrt_abi_type->get_OverflowButtonVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::PaneToggleButtonVisibility() const
    {
        winrt::Windows::UI::Xaml::Visibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneToggleButtonVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)this;
            check_hresult(_winrt_abi_type->get_PaneToggleButtonVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::BackButtonVisibility() const
    {
        winrt::Windows::UI::Xaml::Visibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackButtonVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)this;
            check_hresult(_winrt_abi_type->get_BackButtonVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::TopPaneVisibility() const
    {
        winrt::Windows::UI::Xaml::Visibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopPaneVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)this;
            check_hresult(_winrt_abi_type->get_TopPaneVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::LeftPaneVisibility() const
    {
        winrt::Windows::UI::Xaml::Visibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftPaneVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)this;
            check_hresult(_winrt_abi_type->get_LeftPaneVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettings<D>::SingleSelectionFollowsFocus() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocus(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>**)this;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocus(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::NavigationViewTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::TopPaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopPaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)this;
            check_hresult(_winrt_abi_type->get_TopPaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::OverflowButtonVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OverflowButtonVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)this;
            check_hresult(_winrt_abi_type->get_OverflowButtonVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::PaneToggleButtonVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneToggleButtonVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaneToggleButtonVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::BackButtonVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackButtonVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)this;
            check_hresult(_winrt_abi_type->get_BackButtonVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::TopPaneVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopPaneVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)this;
            check_hresult(_winrt_abi_type->get_TopPaneVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::LeftPaneVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftPaneVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)this;
            check_hresult(_winrt_abi_type->get_LeftPaneVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INavigationViewTemplateSettingsStatics<D>::SingleSelectionFollowsFocusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>**)this;
            check_hresult(_winrt_abi_type->get_SingleSelectionFollowsFocusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INotifyEventArgs<D>::Value() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INotifyEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Value(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Value(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_INotifyEventArgs2<D>::CallingUri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::INotifyEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CallingUri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs2>**)this;
            check_hresult(_winrt_abi_type->get_CallingUri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::Frame() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Frame(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)this;
            check_hresult(_winrt_abi_type->get_Frame(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Frame{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::NavigationCacheMode() const
    {
        winrt::Windows::UI::Xaml::Navigation::NavigationCacheMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NavigationCacheMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)this;
            check_hresult(_winrt_abi_type->get_NavigationCacheMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::NavigationCacheMode(winrt::Windows::UI::Xaml::Navigation::NavigationCacheMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_NavigationCacheMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)this;
            check_hresult(_winrt_abi_type->put_NavigationCacheMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::TopAppBar() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopAppBar(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)this;
            check_hresult(_winrt_abi_type->get_TopAppBar(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::AppBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::TopAppBar(winrt::Windows::UI::Xaml::Controls::AppBar const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TopAppBar(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)this;
            check_hresult(_winrt_abi_type->put_TopAppBar(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::BottomAppBar() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BottomAppBar(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)this;
            check_hresult(_winrt_abi_type->get_BottomAppBar(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::AppBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPage<D>::BottomAppBar(winrt::Windows::UI::Xaml::Controls::AppBar const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPage>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPage, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BottomAppBar(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPage>**)this;
            check_hresult(_winrt_abi_type->put_BottomAppBar(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPageFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPageFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::Page{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageOverrides<D>::OnNavigatedFrom(winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPageOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPageOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnNavigatedFrom(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageOverrides>**)this;
            check_hresult(_winrt_abi_type->OnNavigatedFrom(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageOverrides<D>::OnNavigatedTo(winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPageOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPageOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnNavigatedTo(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageOverrides>**)this;
            check_hresult(_winrt_abi_type->OnNavigatedTo(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageOverrides<D>::OnNavigatingFrom(winrt::Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPageOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPageOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnNavigatingFrom(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageOverrides>**)this;
            check_hresult(_winrt_abi_type->OnNavigatingFrom(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageStatics<D>::FrameProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPageStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPageStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FrameProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageStatics>**)this;
            check_hresult(_winrt_abi_type->get_FrameProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageStatics<D>::TopAppBarProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPageStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPageStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopAppBarProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageStatics>**)this;
            check_hresult(_winrt_abi_type->get_TopAppBarProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPageStatics<D>::BottomAppBarProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPageStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPageStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BottomAppBarProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPageStatics>**)this;
            check_hresult(_winrt_abi_type->get_BottomAppBarProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::Children() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Children(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)this;
            check_hresult(_winrt_abi_type->get_Children(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::UIElementCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::Background() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Background(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)this;
            check_hresult(_winrt_abi_type->get_Background(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::Background(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Background(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)this;
            check_hresult(_winrt_abi_type->put_Background(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::IsItemsHost() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsItemsHost(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)this;
            check_hresult(_winrt_abi_type->get_IsItemsHost(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::ChildrenTransitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ChildrenTransitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)this;
            check_hresult(_winrt_abi_type->get_ChildrenTransitions(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel<D>::ChildrenTransitions(winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ChildrenTransitions(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel>**)this;
            check_hresult(_winrt_abi_type->put_ChildrenTransitions(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel2<D>::BackgroundTransition() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundTransition(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel2>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundTransition(&value));
        }
        return winrt::Windows::UI::Xaml::BrushTransition{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanel2<D>::BackgroundTransition(winrt::Windows::UI::Xaml::BrushTransition const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BackgroundTransition(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanel2>**)this;
            check_hresult(_winrt_abi_type->put_BackgroundTransition(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanelFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanelFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanelFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanelFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanelFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::Panel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanelStatics<D>::BackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanelStatics<D>::IsItemsHostProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsItemsHostProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsItemsHostProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPanelStatics<D>::ChildrenTransitionsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ChildrenTransitionsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_ChildrenTransitionsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Child() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Child(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_Child(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Child(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Child(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_Child(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalShift() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalShift(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalShift(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalShift(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalShift(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalShift(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceEndOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalSourceEndOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalSourceEndOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceEndOffset(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalSourceEndOffset(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalSourceEndOffset(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceOffsetKind() const
    {
        winrt::Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalSourceOffsetKind(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalSourceOffsetKind(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceOffsetKind(winrt::Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalSourceOffsetKind(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalSourceOffsetKind(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceStartOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalSourceStartOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalSourceStartOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::HorizontalSourceStartOffset(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalSourceStartOffset(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalSourceStartOffset(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsHorizontalShiftClamped() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHorizontalShiftClamped(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_IsHorizontalShiftClamped(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsHorizontalShiftClamped(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsHorizontalShiftClamped(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_IsHorizontalShiftClamped(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsVerticalShiftClamped() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsVerticalShiftClamped(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_IsVerticalShiftClamped(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::IsVerticalShiftClamped(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsVerticalShiftClamped(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_IsVerticalShiftClamped(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxHorizontalShiftRatio() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxHorizontalShiftRatio(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_MaxHorizontalShiftRatio(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxHorizontalShiftRatio(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxHorizontalShiftRatio(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_MaxHorizontalShiftRatio(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxVerticalShiftRatio() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxVerticalShiftRatio(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_MaxVerticalShiftRatio(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::MaxVerticalShiftRatio(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxVerticalShiftRatio(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_MaxVerticalShiftRatio(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Source() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::Source(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalShift() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalShift(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_VerticalShift(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalShift(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalShift(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_VerticalShift(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceEndOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalSourceEndOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_VerticalSourceEndOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceEndOffset(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalSourceEndOffset(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_VerticalSourceEndOffset(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceOffsetKind() const
    {
        winrt::Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalSourceOffsetKind(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_VerticalSourceOffsetKind(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceOffsetKind(winrt::Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalSourceOffsetKind(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_VerticalSourceOffsetKind(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceStartOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalSourceStartOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->get_VerticalSourceStartOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::VerticalSourceStartOffset(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalSourceStartOffset(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->put_VerticalSourceStartOffset(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::RefreshAutomaticHorizontalOffsets() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RefreshAutomaticHorizontalOffsets());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->RefreshAutomaticHorizontalOffsets());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxView<D>::RefreshAutomaticVerticalOffsets() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RefreshAutomaticVerticalOffsets());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxView>**)this;
            check_hresult(_winrt_abi_type->RefreshAutomaticVerticalOffsets());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ParallaxView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::ChildProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ChildProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_ChildProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalSourceEndOffsetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalSourceEndOffsetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalSourceEndOffsetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalSourceOffsetKindProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalSourceOffsetKindProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalSourceOffsetKindProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalSourceStartOffsetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalSourceStartOffsetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalSourceStartOffsetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::MaxHorizontalShiftRatioProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxHorizontalShiftRatioProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxHorizontalShiftRatioProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::HorizontalShiftProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalShiftProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalShiftProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::IsHorizontalShiftClampedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHorizontalShiftClampedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsHorizontalShiftClampedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::IsVerticalShiftClampedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsVerticalShiftClampedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsVerticalShiftClampedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::SourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalSourceEndOffsetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalSourceEndOffsetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalSourceEndOffsetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalSourceOffsetKindProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalSourceOffsetKindProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalSourceOffsetKindProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalSourceStartOffsetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalSourceStartOffsetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalSourceStartOffsetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::MaxVerticalShiftRatioProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxVerticalShiftRatioProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxVerticalShiftRatioProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IParallaxViewStatics<D>::VerticalShiftProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalShiftProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalShiftProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::Password() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Password(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            check_hresult(_winrt_abi_type->get_Password(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::Password(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Password(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            check_hresult(_winrt_abi_type->put_Password(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChar() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PasswordChar(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            check_hresult(_winrt_abi_type->get_PasswordChar(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChar(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PasswordChar(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            check_hresult(_winrt_abi_type->put_PasswordChar(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::IsPasswordRevealButtonEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPasswordRevealButtonEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            check_hresult(_winrt_abi_type->get_IsPasswordRevealButtonEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::IsPasswordRevealButtonEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsPasswordRevealButtonEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            check_hresult(_winrt_abi_type->put_IsPasswordRevealButtonEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::MaxLength() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            check_hresult(_winrt_abi_type->get_MaxLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::MaxLength(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxLength(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            check_hresult(_winrt_abi_type->put_MaxLength(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PasswordChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            check_hresult(_winrt_abi_type->add_PasswordChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, PasswordChanged_revoker>(this, PasswordChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::PasswordChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PasswordChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            _winrt_abi_type->remove_PasswordChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening(winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            check_hresult(_winrt_abi_type->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ContextMenuOpening_revoker>(this, ContextMenuOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ContextMenuOpening(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            _winrt_abi_type->remove_ContextMenuOpening(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox<D>::SelectAll() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectAll());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox>**)this;
            check_hresult(_winrt_abi_type->SelectAll());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PlaceholderText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PlaceholderText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::SelectionHighlightColor() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColor(&value));
        }
        return winrt::Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::SelectionHighlightColor(winrt::Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColor(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColor(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            check_hresult(_winrt_abi_type->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste(winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Paste(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            check_hresult(_winrt_abi_type->add_Paste(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Paste_revoker>(this, Paste(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox2<D>::Paste(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Paste(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox2>**)this;
            _winrt_abi_type->remove_Paste(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::PasswordRevealMode() const
    {
        winrt::Windows::UI::Xaml::Controls::PasswordRevealMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PasswordRevealMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)this;
            check_hresult(_winrt_abi_type->get_PasswordRevealMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::PasswordRevealMode(winrt::Windows::UI::Xaml::Controls::PasswordRevealMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PasswordRevealMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)this;
            check_hresult(_winrt_abi_type->put_PasswordRevealMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::TextReadingOrder() const
    {
        winrt::Windows::UI::Xaml::TextReadingOrder value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextReadingOrder(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)this;
            check_hresult(_winrt_abi_type->get_TextReadingOrder(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::TextReadingOrder(winrt::Windows::UI::Xaml::TextReadingOrder const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextReadingOrder(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)this;
            check_hresult(_winrt_abi_type->put_TextReadingOrder(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::InputScope() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InputScope(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)this;
            check_hresult(_winrt_abi_type->get_InputScope(&value));
        }
        return winrt::Windows::UI::Xaml::Input::InputScope{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox3<D>::InputScope(winrt::Windows::UI::Xaml::Input::InputScope const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_InputScope(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox3>**)this;
            check_hresult(_winrt_abi_type->put_InputScope(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox4<D>::PasswordChanging(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::PasswordBox, winrt::Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PasswordChanging(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox4>**)this;
            check_hresult(_winrt_abi_type->add_PasswordChanging(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox4<D>::PasswordChanging(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::PasswordBox, winrt::Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PasswordChanging_revoker>(this, PasswordChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox4<D>::PasswordChanging(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox4>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PasswordChanging(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox4>**)this;
            _winrt_abi_type->remove_PasswordChanging(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::CanPasteClipboardContent() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanPasteClipboardContent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)this;
            check_hresult(_winrt_abi_type->get_CanPasteClipboardContent(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::SelectionFlyout() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFlyout(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFlyout(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::SelectionFlyout(winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionFlyout(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)this;
            check_hresult(_winrt_abi_type->put_SelectionFlyout(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::Description() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)this;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::Description(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)this;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBox5<D>::PasteFromClipboard() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->PasteFromClipboard());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBox5>**)this;
            check_hresult(_winrt_abi_type->PasteFromClipboard());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxPasswordChangingEventArgs<D>::IsContentChanging() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsContentChanging(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_IsContentChanging(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::PasswordProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PasswordProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_PasswordProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::PasswordCharProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PasswordCharProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_PasswordCharProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::IsPasswordRevealButtonEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPasswordRevealButtonEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsPasswordRevealButtonEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics<D>::MaxLengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxLengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::PlaceholderTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::SelectionHighlightColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics2<D>::PreventKeyboardDisplayOnProgrammaticFocusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics3<D>::PasswordRevealModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PasswordRevealModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3>**)this;
            check_hresult(_winrt_abi_type->get_PasswordRevealModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics3<D>::TextReadingOrderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextReadingOrderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3>**)this;
            check_hresult(_winrt_abi_type->get_TextReadingOrderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics3<D>::InputScopeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InputScopeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3>**)this;
            check_hresult(_winrt_abi_type->get_InputScopeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics5<D>::CanPasteClipboardContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanPasteClipboardContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5>**)this;
            check_hresult(_winrt_abi_type->get_CanPasteClipboardContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics5<D>::SelectionFlyoutProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFlyoutProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFlyoutProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPasswordBoxStatics5<D>::DescriptionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5>**)this;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIcon<D>::Data() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPathIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPathIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Data(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIcon>**)this;
            check_hresult(_winrt_abi_type->get_Data(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Geometry{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIcon<D>::Data(winrt::Windows::UI::Xaml::Media::Geometry const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPathIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPathIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Data(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIcon>**)this;
            check_hresult(_winrt_abi_type->put_Data(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPathIconFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPathIconFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::PathIcon{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconSource<D>::Data() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPathIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPathIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Data(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconSource>**)this;
            check_hresult(_winrt_abi_type->get_Data(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Geometry{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconSource<D>::Data(winrt::Windows::UI::Xaml::Media::Geometry const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPathIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPathIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Data(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconSource>**)this;
            check_hresult(_winrt_abi_type->put_Data(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconSourceFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPathIconSourceFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPathIconSourceFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconSourceFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconSourceFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::PathIconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconSourceStatics<D>::DataProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPathIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPathIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DataProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_DataProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPathIconStatics<D>::DataProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPathIconStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPathIconStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DataProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPathIconStatics>**)this;
            check_hresult(_winrt_abi_type->get_DataProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeNumber() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BadgeNumber(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->get_BadgeNumber(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeNumber(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BadgeNumber(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->put_BadgeNumber(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeGlyph() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BadgeGlyph(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->get_BadgeGlyph(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeGlyph(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BadgeGlyph(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->put_BadgeGlyph(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeImageSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BadgeImageSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->get_BadgeImageSource(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeImageSource(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BadgeImageSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->put_BadgeImageSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BadgeText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->get_BadgeText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::BadgeText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BadgeText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->put_BadgeText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::IsGroup() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsGroup(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->get_IsGroup(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::IsGroup(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsGroup(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->put_IsGroup(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Contact() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Contact(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->get_Contact(&value));
        }
        return winrt::Windows::ApplicationModel::Contacts::Contact{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Contact(winrt::Windows::ApplicationModel::Contacts::Contact const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Contact(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->put_Contact(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::DisplayName() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayName(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->get_DisplayName(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::DisplayName(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DisplayName(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->put_DisplayName(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Initials() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Initials(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->get_Initials(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::Initials(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Initials(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->put_Initials(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::PreferSmallImage() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PreferSmallImage(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->get_PreferSmallImage(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::PreferSmallImage(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PreferSmallImage(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->put_PreferSmallImage(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::ProfilePicture() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ProfilePicture(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->get_ProfilePicture(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPicture<D>::ProfilePicture(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPicture, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ProfilePicture(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPicture>**)this;
            check_hresult(_winrt_abi_type->put_ProfilePicture(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPictureFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::PersonPicture{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeNumberProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BadgeNumberProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)this;
            check_hresult(_winrt_abi_type->get_BadgeNumberProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeGlyphProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BadgeGlyphProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)this;
            check_hresult(_winrt_abi_type->get_BadgeGlyphProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeImageSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BadgeImageSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)this;
            check_hresult(_winrt_abi_type->get_BadgeImageSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::BadgeTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BadgeTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)this;
            check_hresult(_winrt_abi_type->get_BadgeTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::IsGroupProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsGroupProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsGroupProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::ContactProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContactProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContactProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::DisplayNameProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayNameProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)this;
            check_hresult(_winrt_abi_type->get_DisplayNameProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::InitialsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InitialsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)this;
            check_hresult(_winrt_abi_type->get_InitialsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::PreferSmallImageProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PreferSmallImageProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)this;
            check_hresult(_winrt_abi_type->get_PreferSmallImageProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPersonPictureStatics<D>::ProfilePictureProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ProfilePictureProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>**)this;
            check_hresult(_winrt_abi_type->get_ProfilePictureProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Content() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Content(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::ConfirmationButtonsVisible() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ConfirmationButtonsVisible(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_ConfirmationButtonsVisible(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::ConfirmationButtonsVisible(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ConfirmationButtonsVisible(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_ConfirmationButtonsVisible(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Confirmed(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::PickerFlyout, winrt::Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Confirmed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->add_Confirmed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Confirmed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::PickerFlyout, winrt::Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Confirmed_revoker>(this, Confirmed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::Confirmed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Confirmed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)this;
            _winrt_abi_type->remove_Confirmed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyout<D>::ShowAtAsync(winrt::Windows::UI::Xaml::FrameworkElement const& target) const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ShowAtAsync(*(void**)(&target), &operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyout>**)this;
            check_hresult(_winrt_abi_type->ShowAtAsync(*(void**)(&target), &operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<bool>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyoutStatics<D>::ContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPickerFlyoutStatics<D>::ConfirmationButtonsVisibleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ConfirmationButtonsVisibleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_ConfirmationButtonsVisibleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::Title() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Title(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->get_Title(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::Title(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Title(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->put_Title(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::TitleTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TitleTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->get_TitleTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::TitleTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TitleTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->put_TitleTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->get_SelectedIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedIndex(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedIndex(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->put_SelectedIndex(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItem(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectedItem(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedItem(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->put_SelectedItem(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::IsLocked() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsLocked(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->get_IsLocked(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::IsLocked(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsLocked(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->put_IsLocked(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged(winrt::Windows::UI::Xaml::Controls::SelectionChangedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::SelectionChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoading(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PivotItemLoading(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->add_PivotItemLoading(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoading(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PivotItemLoading_revoker>(this, PivotItemLoading(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoading(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PivotItemLoading(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            _winrt_abi_type->remove_PivotItemLoading(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoaded(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PivotItemLoaded(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->add_PivotItemLoaded(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoaded(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PivotItemLoaded_revoker>(this, PivotItemLoaded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemLoaded(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PivotItemLoaded(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            _winrt_abi_type->remove_PivotItemLoaded(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloading(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PivotItemUnloading(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->add_PivotItemUnloading(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloading(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PivotItemUnloading_revoker>(this, PivotItemUnloading(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloading(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PivotItemUnloading(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            _winrt_abi_type->remove_PivotItemUnloading(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloaded(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PivotItemUnloaded(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            check_hresult(_winrt_abi_type->add_PivotItemUnloaded(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloaded(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PivotItemUnloaded_revoker>(this, PivotItemUnloaded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot<D>::PivotItemUnloaded(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PivotItemUnloaded(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot>**)this;
            _winrt_abi_type->remove_PivotItemUnloaded(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeader() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftHeader(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)this;
            check_hresult(_winrt_abi_type->get_LeftHeader(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeader(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LeftHeader(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)this;
            check_hresult(_winrt_abi_type->put_LeftHeader(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftHeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)this;
            check_hresult(_winrt_abi_type->get_LeftHeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::LeftHeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LeftHeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)this;
            check_hresult(_winrt_abi_type->put_LeftHeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeader() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RightHeader(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)this;
            check_hresult(_winrt_abi_type->get_RightHeader(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeader(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_RightHeader(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)this;
            check_hresult(_winrt_abi_type->put_RightHeader(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RightHeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)this;
            check_hresult(_winrt_abi_type->get_RightHeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot2<D>::RightHeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_RightHeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot2>**)this;
            check_hresult(_winrt_abi_type->put_RightHeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot3<D>::HeaderFocusVisualPlacement() const
    {
        winrt::Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderFocusVisualPlacement(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot3>**)this;
            check_hresult(_winrt_abi_type->get_HeaderFocusVisualPlacement(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot3<D>::HeaderFocusVisualPlacement(winrt::Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderFocusVisualPlacement(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot3>**)this;
            check_hresult(_winrt_abi_type->put_HeaderFocusVisualPlacement(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot3<D>::IsHeaderItemsCarouselEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHeaderItemsCarouselEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot3>**)this;
            check_hresult(_winrt_abi_type->get_IsHeaderItemsCarouselEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivot3<D>::IsHeaderItemsCarouselEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivot3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivot3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsHeaderItemsCarouselEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivot3>**)this;
            check_hresult(_winrt_abi_type->put_IsHeaderItemsCarouselEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::Pivot{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItem<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItem>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItem<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItem>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItemEventArgs<D>::Item() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::PivotItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItemEventArgs<D>::Item(winrt::Windows::UI::Xaml::Controls::PivotItem const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Item(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Item(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::PivotItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotItemStatics<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::TitleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TitleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)this;
            check_hresult(_winrt_abi_type->get_TitleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::TitleTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TitleTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)this;
            check_hresult(_winrt_abi_type->get_TitleTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::SelectedIndexProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedIndexProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedIndexProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::SelectedItemProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedItemProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedItemProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::IsLockedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsLockedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsLockedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::SlideInAnimationGroupProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SlideInAnimationGroupProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)this;
            check_hresult(_winrt_abi_type->get_SlideInAnimationGroupProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::GetSlideInAnimationGroup(winrt::Windows::UI::Xaml::FrameworkElement const& element) const
    {
        winrt::Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetSlideInAnimationGroup(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)this;
            check_hresult(_winrt_abi_type->GetSlideInAnimationGroup(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics<D>::SetSlideInAnimationGroup(winrt::Windows::UI::Xaml::FrameworkElement const& element, winrt::Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetSlideInAnimationGroup(*(void**)(&element), static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics>**)this;
            check_hresult(_winrt_abi_type->SetSlideInAnimationGroup(*(void**)(&element), static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::LeftHeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftHeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics2>**)this;
            check_hresult(_winrt_abi_type->get_LeftHeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::LeftHeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftHeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics2>**)this;
            check_hresult(_winrt_abi_type->get_LeftHeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::RightHeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RightHeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics2>**)this;
            check_hresult(_winrt_abi_type->get_RightHeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics2<D>::RightHeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RightHeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics2>**)this;
            check_hresult(_winrt_abi_type->get_RightHeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics3<D>::HeaderFocusVisualPlacementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderFocusVisualPlacementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics3>**)this;
            check_hresult(_winrt_abi_type->get_HeaderFocusVisualPlacementProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IPivotStatics3<D>::IsHeaderItemsCarouselEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IPivotStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHeaderItemsCarouselEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IPivotStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsHeaderItemsCarouselEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::IsIndeterminate() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsIndeterminate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)this;
            check_hresult(_winrt_abi_type->get_IsIndeterminate(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::IsIndeterminate(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsIndeterminate(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)this;
            check_hresult(_winrt_abi_type->put_IsIndeterminate(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowError() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowError(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)this;
            check_hresult(_winrt_abi_type->get_ShowError(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowError(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ShowError(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)this;
            check_hresult(_winrt_abi_type->put_ShowError(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowPaused() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowPaused(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)this;
            check_hresult(_winrt_abi_type->get_ShowPaused(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::ShowPaused(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ShowPaused(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)this;
            check_hresult(_winrt_abi_type->put_ShowPaused(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBar<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressBar>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressBar, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBar>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::ProgressBarTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBarFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressBarFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressBarFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBarFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBarFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ProgressBar{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBarStatics<D>::IsIndeterminateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressBarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsIndeterminateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsIndeterminateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBarStatics<D>::ShowErrorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressBarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowErrorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics>**)this;
            check_hresult(_winrt_abi_type->get_ShowErrorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressBarStatics<D>::ShowPausedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressBarStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ShowPausedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics>**)this;
            check_hresult(_winrt_abi_type->get_ShowPausedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressRing<D>::IsActive() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressRing>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressRing, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressRing>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsActive(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressRing>**)this;
            check_hresult(_winrt_abi_type->get_IsActive(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressRing<D>::IsActive(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressRing>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressRing, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressRing>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsActive(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressRing>**)this;
            check_hresult(_winrt_abi_type->put_IsActive(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressRing<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressRing>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressRing, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressRing>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressRing>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::ProgressRingTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IProgressRingStatics<D>::IsActiveProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IProgressRingStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IProgressRingStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressRingStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsActiveProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IProgressRingStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsActiveProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRadioButton<D>::GroupName() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRadioButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRadioButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRadioButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupName(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRadioButton>**)this;
            check_hresult(_winrt_abi_type->get_GroupName(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRadioButton<D>::GroupName(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRadioButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRadioButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRadioButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_GroupName(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRadioButton>**)this;
            check_hresult(_winrt_abi_type->put_GroupName(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRadioButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRadioButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRadioButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRadioButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRadioButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::RadioButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRadioButtonStatics<D>::GroupNameProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRadioButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRadioButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRadioButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GroupNameProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRadioButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_GroupNameProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Caption() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Caption(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->get_Caption(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Caption(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Caption(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->put_Caption(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::InitialSetValue() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InitialSetValue(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->get_InitialSetValue(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::InitialSetValue(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_InitialSetValue(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->put_InitialSetValue(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsClearEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsClearEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->get_IsClearEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsClearEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsClearEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->put_IsClearEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsReadOnly() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsReadOnly(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->get_IsReadOnly(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::IsReadOnly(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsReadOnly(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->put_IsReadOnly(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::MaxRating() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxRating(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->get_MaxRating(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::MaxRating(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxRating(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->put_MaxRating(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::PlaceholderValue() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderValue(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderValue(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::PlaceholderValue(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderValue(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderValue(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ItemInfo() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemInfo(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->get_ItemInfo(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::RatingItemInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ItemInfo(winrt::Windows::UI::Xaml::Controls::RatingItemInfo const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemInfo(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->put_ItemInfo(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Value() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Value(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->get_Value(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::Value(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Value(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->put_Value(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ValueChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RatingControl, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ValueChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            check_hresult(_winrt_abi_type->add_ValueChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ValueChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RatingControl, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, ValueChanged_revoker>(this, ValueChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControl<D>::ValueChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ValueChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControl>**)this;
            _winrt_abi_type->remove_ValueChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControlFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControlFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::RatingControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::CaptionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CaptionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_CaptionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::InitialSetValueProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InitialSetValueProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_InitialSetValueProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::IsClearEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsClearEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsClearEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::IsReadOnlyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsReadOnlyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsReadOnlyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::MaxRatingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxRatingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxRatingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::PlaceholderValueProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderValueProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderValueProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::ItemInfoProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemInfoProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemInfoProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingControlStatics<D>::ValueProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ValueProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ValueProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::DisabledGlyph() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisabledGlyph(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->get_DisabledGlyph(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::DisabledGlyph(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DisabledGlyph(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->put_DisabledGlyph(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::Glyph() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Glyph(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->get_Glyph(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::Glyph(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Glyph(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->put_Glyph(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverGlyph() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PointerOverGlyph(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->get_PointerOverGlyph(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverGlyph(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PointerOverGlyph(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->put_PointerOverGlyph(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverPlaceholderGlyph() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PointerOverPlaceholderGlyph(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->get_PointerOverPlaceholderGlyph(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PointerOverPlaceholderGlyph(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PointerOverPlaceholderGlyph(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->put_PointerOverPlaceholderGlyph(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PlaceholderGlyph() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderGlyph(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderGlyph(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::PlaceholderGlyph(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderGlyph(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderGlyph(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::UnsetGlyph() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UnsetGlyph(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->get_UnsetGlyph(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfo<D>::UnsetGlyph(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_UnsetGlyph(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>**)this;
            check_hresult(_winrt_abi_type->put_UnsetGlyph(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::RatingItemFontInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::DisabledGlyphProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisabledGlyphProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_DisabledGlyphProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::GlyphProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GlyphProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_GlyphProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::PlaceholderGlyphProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderGlyphProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderGlyphProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::PointerOverGlyphProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PointerOverGlyphProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_PointerOverGlyphProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::PointerOverPlaceholderGlyphProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PointerOverPlaceholderGlyphProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_PointerOverPlaceholderGlyphProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemFontInfoStatics<D>::UnsetGlyphProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UnsetGlyphProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_UnsetGlyphProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::DisabledImage() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisabledImage(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->get_DisabledImage(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::DisabledImage(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DisabledImage(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->put_DisabledImage(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::Image() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Image(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->get_Image(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::Image(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Image(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->put_Image(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PlaceholderImage() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderImage(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderImage(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PlaceholderImage(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderImage(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderImage(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverImage() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PointerOverImage(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->get_PointerOverImage(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverImage(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PointerOverImage(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->put_PointerOverImage(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverPlaceholderImage() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PointerOverPlaceholderImage(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->get_PointerOverPlaceholderImage(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::PointerOverPlaceholderImage(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PointerOverPlaceholderImage(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->put_PointerOverPlaceholderImage(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::UnsetImage() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UnsetImage(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->get_UnsetImage(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfo<D>::UnsetImage(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_UnsetImage(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>**)this;
            check_hresult(_winrt_abi_type->put_UnsetImage(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::RatingItemImageInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::DisabledImageProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisabledImageProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_DisabledImageProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::ImageProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ImageProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_ImageProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::PlaceholderImageProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderImageProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderImageProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::PointerOverImageProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PointerOverImageProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_PointerOverImageProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::PointerOverPlaceholderImageProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PointerOverPlaceholderImageProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_PointerOverPlaceholderImageProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemImageInfoStatics<D>::UnsetImageProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_UnsetImageProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>**)this;
            check_hresult(_winrt_abi_type->get_UnsetImageProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRatingItemInfoFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRatingItemInfoFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRatingItemInfoFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemInfoFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRatingItemInfoFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::RatingItemInfo{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::Visualizer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshContainer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Visualizer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)this;
            check_hresult(_winrt_abi_type->get_Visualizer(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::RefreshVisualizer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::Visualizer(winrt::Windows::UI::Xaml::Controls::RefreshVisualizer const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshContainer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Visualizer(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)this;
            check_hresult(_winrt_abi_type->put_Visualizer(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::PullDirection() const
    {
        winrt::Windows::UI::Xaml::Controls::RefreshPullDirection value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshContainer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PullDirection(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)this;
            check_hresult(_winrt_abi_type->get_PullDirection(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::PullDirection(winrt::Windows::UI::Xaml::Controls::RefreshPullDirection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshContainer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PullDirection(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)this;
            check_hresult(_winrt_abi_type->put_PullDirection(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RefreshRequested(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RefreshContainer, winrt::Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshContainer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_RefreshRequested(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)this;
            check_hresult(_winrt_abi_type->add_RefreshRequested(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RefreshRequested(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RefreshContainer, winrt::Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, RefreshRequested_revoker>(this, RefreshRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RefreshRequested(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshContainer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)&_winrt_casted_result;
            _winrt_abi_type->remove_RefreshRequested(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)this;
            _winrt_abi_type->remove_RefreshRequested(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainer<D>::RequestRefresh() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshContainer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RequestRefresh());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainer>**)this;
            check_hresult(_winrt_abi_type->RequestRefresh());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainerFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainerFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshContainerFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainerFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainerFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::RefreshContainer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainerStatics<D>::VisualizerProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VisualizerProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics>**)this;
            check_hresult(_winrt_abi_type->get_VisualizerProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshContainerStatics<D>::PullDirectionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PullDirectionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics>**)this;
            check_hresult(_winrt_abi_type->get_PullDirectionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshInteractionRatioChangedEventArgs<D>::InteractionRatio() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InteractionRatio(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_InteractionRatio(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshRequestedEventArgs<D>::GetDeferral() const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetDeferral(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->GetDeferral(&result));
        }
        return winrt::Windows::Foundation::Deferral{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshStateChangedEventArgs<D>::OldState() const
    {
        winrt::Windows::UI::Xaml::Controls::RefreshVisualizerState value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OldState(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_OldState(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshStateChangedEventArgs<D>::NewState() const
    {
        winrt::Windows::UI::Xaml::Controls::RefreshVisualizerState value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NewState(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_NewState(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RequestRefresh() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RequestRefresh());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)this;
            check_hresult(_winrt_abi_type->RequestRefresh());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Orientation() const
    {
        winrt::Windows::UI::Xaml::Controls::RefreshVisualizerOrientation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)this;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Orientation(winrt::Windows::UI::Xaml::Controls::RefreshVisualizerOrientation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)this;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Content() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)this;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::Content(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)this;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::State() const
    {
        winrt::Windows::UI::Xaml::Controls::RefreshVisualizerState value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_State(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)this;
            check_hresult(_winrt_abi_type->get_State(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshRequested(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer, winrt::Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_RefreshRequested(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)this;
            check_hresult(_winrt_abi_type->add_RefreshRequested(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshRequested(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer, winrt::Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, RefreshRequested_revoker>(this, RefreshRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshRequested(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)&_winrt_casted_result;
            _winrt_abi_type->remove_RefreshRequested(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)this;
            _winrt_abi_type->remove_RefreshRequested(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshStateChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer, winrt::Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_RefreshStateChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)this;
            check_hresult(_winrt_abi_type->add_RefreshStateChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshStateChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer, winrt::Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, RefreshStateChanged_revoker>(this, RefreshStateChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizer<D>::RefreshStateChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)&_winrt_casted_result;
            _winrt_abi_type->remove_RefreshStateChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>**)this;
            _winrt_abi_type->remove_RefreshStateChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizerFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::RefreshVisualizer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::InfoProviderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InfoProviderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>**)this;
            check_hresult(_winrt_abi_type->get_InfoProviderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::ContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRefreshVisualizerStatics<D>::StateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>**)this;
            check_hresult(_winrt_abi_type->get_StateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)this;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderThickness() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)this;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::BorderThickness(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)this;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::CornerRadius() const
    {
        winrt::Windows::UI::Xaml::CornerRadius value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::CornerRadius(winrt::Windows::UI::Xaml::CornerRadius const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)this;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::Padding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)this;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel<D>::Padding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel>**)this;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel2<D>::BackgroundSizing() const
    {
        winrt::Windows::UI::Xaml::Controls::BackgroundSizing value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel2>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanel2<D>::BackgroundSizing(winrt::Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanel2>**)this;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::RelativePanel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::LeftOfProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftOfProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_LeftOfProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetLeftOf(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetLeftOf(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetLeftOf(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetLeftOf(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetLeftOf(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetLeftOf(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AboveProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AboveProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AboveProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAbove(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAbove(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAbove(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAbove(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAbove(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAbove(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::RightOfProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RightOfProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_RightOfProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetRightOf(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetRightOf(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetRightOf(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetRightOf(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetRightOf(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetRightOf(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::BelowProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BelowProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_BelowProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetBelow(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetBelow(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetBelow(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetBelow(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetBelow(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetBelow(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignHorizontalCenterWithProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignHorizontalCenterWithProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignHorizontalCenterWithProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignHorizontalCenterWith(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignHorizontalCenterWith(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignHorizontalCenterWith(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignHorizontalCenterWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignHorizontalCenterWith(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignHorizontalCenterWith(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignVerticalCenterWithProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignVerticalCenterWithProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignVerticalCenterWithProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignVerticalCenterWith(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignVerticalCenterWith(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignVerticalCenterWith(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignVerticalCenterWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignVerticalCenterWith(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignVerticalCenterWith(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignLeftWithProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignLeftWithProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignLeftWithProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignLeftWith(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignLeftWith(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignLeftWith(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignLeftWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignLeftWith(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignLeftWith(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignTopWithProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignTopWithProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignTopWithProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignTopWith(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignTopWith(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignTopWith(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignTopWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignTopWith(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignTopWith(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignRightWithProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignRightWithProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignRightWithProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignRightWith(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignRightWith(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignRightWith(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignRightWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignRightWith(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignRightWith(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignBottomWithProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignBottomWithProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignBottomWithProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignBottomWith(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignBottomWith(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignBottomWith(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignBottomWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignBottomWith(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignBottomWith(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignLeftWithPanelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignLeftWithPanelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignLeftWithPanelProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignLeftWithPanel(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignLeftWithPanel(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignLeftWithPanel(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignLeftWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignLeftWithPanel(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignLeftWithPanel(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignTopWithPanelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignTopWithPanelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignTopWithPanelProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignTopWithPanel(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignTopWithPanel(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignTopWithPanel(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignTopWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignTopWithPanel(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignTopWithPanel(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignRightWithPanelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignRightWithPanelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignRightWithPanelProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignRightWithPanel(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignRightWithPanel(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignRightWithPanel(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignRightWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignRightWithPanel(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignRightWithPanel(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignBottomWithPanelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignBottomWithPanelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignBottomWithPanelProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignBottomWithPanel(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignBottomWithPanel(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignBottomWithPanel(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignBottomWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignBottomWithPanel(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignBottomWithPanel(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignHorizontalCenterWithPanelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignHorizontalCenterWithPanelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignHorizontalCenterWithPanelProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignHorizontalCenterWithPanel(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignHorizontalCenterWithPanel(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignHorizontalCenterWithPanel(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignHorizontalCenterWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignHorizontalCenterWithPanel(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignHorizontalCenterWithPanel(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::AlignVerticalCenterWithPanelProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AlignVerticalCenterWithPanelProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AlignVerticalCenterWithPanelProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::GetAlignVerticalCenterWithPanel(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlignVerticalCenterWithPanel(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetAlignVerticalCenterWithPanel(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::SetAlignVerticalCenterWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetAlignVerticalCenterWithPanel(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetAlignVerticalCenterWithPanel(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::BorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::BorderThicknessProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::CornerRadiusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics<D>::PaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRelativePanelStatics2<D>::BackgroundSizingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics2>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsReadOnly() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsReadOnly(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->get_IsReadOnly(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsReadOnly(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsReadOnly(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->put_IsReadOnly(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::AcceptsReturn() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AcceptsReturn(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->get_AcceptsReturn(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::AcceptsReturn(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AcceptsReturn(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->put_AcceptsReturn(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextAlignment() const
    {
        winrt::Windows::UI::Xaml::TextAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->get_TextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextAlignment(winrt::Windows::UI::Xaml::TextAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->put_TextAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextWrapping() const
    {
        winrt::Windows::UI::Xaml::TextWrapping value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextWrapping(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->get_TextWrapping(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextWrapping(winrt::Windows::UI::Xaml::TextWrapping const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextWrapping(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->put_TextWrapping(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsSpellCheckEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSpellCheckEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->get_IsSpellCheckEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsSpellCheckEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSpellCheckEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->put_IsSpellCheckEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsTextPredictionEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextPredictionEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->get_IsTextPredictionEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::IsTextPredictionEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTextPredictionEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->put_IsTextPredictionEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::Document() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Document(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->get_Document(&value));
        }
        return winrt::Windows::UI::Text::ITextDocument{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::InputScope() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InputScope(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->get_InputScope(&value));
        }
        return winrt::Windows::UI::Xaml::Input::InputScope{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::InputScope(winrt::Windows::UI::Xaml::Input::InputScope const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_InputScope(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->put_InputScope(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->add_TextChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, TextChanged_revoker>(this, TextChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::TextChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            _winrt_abi_type->remove_TextChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening(winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            check_hresult(_winrt_abi_type->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ContextMenuOpening_revoker>(this, ContextMenuOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ContextMenuOpening(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox>**)this;
            _winrt_abi_type->remove_ContextMenuOpening(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PlaceholderText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PlaceholderText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::SelectionHighlightColor() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColor(&value));
        }
        return winrt::Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::SelectionHighlightColor(winrt::Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColor(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColor(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::IsColorFontEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::IsColorFontEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsColorFontEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->put_IsColorFontEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste(winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Paste(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            check_hresult(_winrt_abi_type->add_Paste(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Paste_revoker>(this, Paste(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox2<D>::Paste(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Paste(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox2>**)this;
            _winrt_abi_type->remove_Paste(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionStarted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextCompositionStarted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            check_hresult(_winrt_abi_type->add_TextCompositionStarted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionStarted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionStarted_revoker>(this, TextCompositionStarted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionStarted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextCompositionStarted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            _winrt_abi_type->remove_TextCompositionStarted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextCompositionChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            check_hresult(_winrt_abi_type->add_TextCompositionChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionChanged_revoker>(this, TextCompositionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextCompositionChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            _winrt_abi_type->remove_TextCompositionChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionEnded(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextCompositionEnded(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            check_hresult(_winrt_abi_type->add_TextCompositionEnded(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionEnded(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionEnded_revoker>(this, TextCompositionEnded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextCompositionEnded(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextCompositionEnded(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            _winrt_abi_type->remove_TextCompositionEnded(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextReadingOrder() const
    {
        winrt::Windows::UI::Xaml::TextReadingOrder value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextReadingOrder(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            check_hresult(_winrt_abi_type->get_TextReadingOrder(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextReadingOrder(winrt::Windows::UI::Xaml::TextReadingOrder const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextReadingOrder(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            check_hresult(_winrt_abi_type->put_TextReadingOrder(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::DesiredCandidateWindowAlignment() const
    {
        winrt::Windows::UI::Xaml::Controls::CandidateWindowAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DesiredCandidateWindowAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            check_hresult(_winrt_abi_type->get_DesiredCandidateWindowAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::DesiredCandidateWindowAlignment(winrt::Windows::UI::Xaml::Controls::CandidateWindowAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DesiredCandidateWindowAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            check_hresult(_winrt_abi_type->put_DesiredCandidateWindowAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::CandidateWindowBoundsChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CandidateWindowBoundsChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            check_hresult(_winrt_abi_type->add_CandidateWindowBoundsChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::CandidateWindowBoundsChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CandidateWindowBoundsChanged_revoker>(this, CandidateWindowBoundsChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::CandidateWindowBoundsChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CandidateWindowBoundsChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            _winrt_abi_type->remove_CandidateWindowBoundsChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextChanging(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextChanging(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            check_hresult(_winrt_abi_type->add_TextChanging(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextChanging(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextChanging_revoker>(this, TextChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox3<D>::TextChanging(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextChanging(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox3>**)this;
            _winrt_abi_type->remove_TextChanging(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox4<D>::GetLinguisticAlternativesAsync() const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetLinguisticAlternativesAsync(&operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox4>**)this;
            check_hresult(_winrt_abi_type->GetLinguisticAlternativesAsync(&operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::Collections::IVectorView<hstring>>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox4<D>::ClipboardCopyFormat() const
    {
        winrt::Windows::UI::Xaml::Controls::RichEditClipboardFormat value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ClipboardCopyFormat(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox4>**)this;
            check_hresult(_winrt_abi_type->get_ClipboardCopyFormat(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox4<D>::ClipboardCopyFormat(winrt::Windows::UI::Xaml::Controls::RichEditClipboardFormat const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ClipboardCopyFormat(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox4>**)this;
            check_hresult(_winrt_abi_type->put_ClipboardCopyFormat(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::SelectionHighlightColorWhenNotFocused() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorWhenNotFocused(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox5>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorWhenNotFocused(&value));
        }
        return winrt::Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::SelectionHighlightColorWhenNotFocused(winrt::Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColorWhenNotFocused(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox5>**)this;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColorWhenNotFocused(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::MaxLength() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox5>**)this;
            check_hresult(_winrt_abi_type->get_MaxLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox5<D>::MaxLength(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxLength(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox5>**)this;
            check_hresult(_winrt_abi_type->put_MaxLength(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::HorizontalTextAlignment() const
    {
        winrt::Windows::UI::Xaml::TextAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::HorizontalTextAlignment(winrt::Windows::UI::Xaml::TextAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CharacterCasing() const
    {
        winrt::Windows::UI::Xaml::Controls::CharacterCasing value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterCasing(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)this;
            check_hresult(_winrt_abi_type->get_CharacterCasing(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CharacterCasing(winrt::Windows::UI::Xaml::Controls::CharacterCasing const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CharacterCasing(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)this;
            check_hresult(_winrt_abi_type->put_CharacterCasing(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::DisabledFormattingAccelerators() const
    {
        winrt::Windows::UI::Xaml::Controls::DisabledFormattingAccelerators value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisabledFormattingAccelerators(reinterpret_cast<uint32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)this;
            check_hresult(_winrt_abi_type->get_DisabledFormattingAccelerators(reinterpret_cast<uint32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::DisabledFormattingAccelerators(winrt::Windows::UI::Xaml::Controls::DisabledFormattingAccelerators const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DisabledFormattingAccelerators(static_cast<uint32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)this;
            check_hresult(_winrt_abi_type->put_DisabledFormattingAccelerators(static_cast<uint32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CopyingToClipboard(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CopyingToClipboard(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)this;
            check_hresult(_winrt_abi_type->add_CopyingToClipboard(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CopyingToClipboard(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CopyingToClipboard_revoker>(this, CopyingToClipboard(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CopyingToClipboard(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CopyingToClipboard(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)this;
            _winrt_abi_type->remove_CopyingToClipboard(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CuttingToClipboard(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CuttingToClipboard(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)this;
            check_hresult(_winrt_abi_type->add_CuttingToClipboard(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CuttingToClipboard(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CuttingToClipboard_revoker>(this, CuttingToClipboard(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox6<D>::CuttingToClipboard(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CuttingToClipboard(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox6>**)this;
            _winrt_abi_type->remove_CuttingToClipboard(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkForegroundColor() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentLinkForegroundColor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->get_ContentLinkForegroundColor(&value));
        }
        return winrt::Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkForegroundColor(winrt::Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContentLinkForegroundColor(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->put_ContentLinkForegroundColor(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkBackgroundColor() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentLinkBackgroundColor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->get_ContentLinkBackgroundColor(&value));
        }
        return winrt::Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkBackgroundColor(winrt::Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContentLinkBackgroundColor(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->put_ContentLinkBackgroundColor(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkProviders() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentLinkProviders(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->get_ContentLinkProviders(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::ContentLinkProviderCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkProviders(winrt::Windows::UI::Xaml::Documents::ContentLinkProviderCollection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ContentLinkProviders(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->put_ContentLinkProviders(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::HandwritingView() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HandwritingView(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->get_HandwritingView(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::HandwritingView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::HandwritingView(winrt::Windows::UI::Xaml::Controls::HandwritingView const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HandwritingView(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->put_HandwritingView(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::IsHandwritingViewEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHandwritingViewEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->get_IsHandwritingViewEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::IsHandwritingViewEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsHandwritingViewEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->put_IsHandwritingViewEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ContentLinkChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->add_ContentLinkChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ContentLinkChanged_revoker>(this, ContentLinkChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ContentLinkChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            _winrt_abi_type->remove_ContentLinkChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkInvoked(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Documents::ContentLinkInvokedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ContentLinkInvoked(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            check_hresult(_winrt_abi_type->add_ContentLinkInvoked(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkInvoked(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Documents::ContentLinkInvokedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ContentLinkInvoked_revoker>(this, ContentLinkInvoked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox7<D>::ContentLinkInvoked(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ContentLinkInvoked(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox7>**)this;
            _winrt_abi_type->remove_ContentLinkInvoked(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::TextDocument() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextDocument(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)this;
            check_hresult(_winrt_abi_type->get_TextDocument(&value));
        }
        return winrt::Windows::UI::Text::RichEditTextDocument{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionFlyout() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFlyout(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFlyout(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionFlyout(winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionFlyout(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)this;
            check_hresult(_winrt_abi_type->put_SelectionFlyout(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::ProofingMenuFlyout() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ProofingMenuFlyout(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)this;
            check_hresult(_winrt_abi_type->get_ProofingMenuFlyout(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::Description() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)this;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::Description(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)this;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionChanging(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::RichEditBoxSelectionChangingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SelectionChanging(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)this;
            check_hresult(_winrt_abi_type->add_SelectionChanging(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionChanging(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::RichEditBoxSelectionChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanging_revoker>(this, SelectionChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBox8<D>::SelectionChanging(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SelectionChanging(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBox8>**)this;
            _winrt_abi_type->remove_SelectionChanging(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::RichEditBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::SelectionStart() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionStart(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_SelectionStart(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::SelectionLength() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_SelectionLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::Cancel() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxSelectionChangingEventArgs<D>::Cancel(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::IsReadOnlyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsReadOnlyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsReadOnlyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::AcceptsReturnProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AcceptsReturnProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_AcceptsReturnProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::TextAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::TextWrappingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextWrappingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextWrappingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::IsSpellCheckEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSpellCheckEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsSpellCheckEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::IsTextPredictionEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextPredictionEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsTextPredictionEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics<D>::InputScopeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InputScopeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_InputScopeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::PlaceholderTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::SelectionHighlightColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::PreventKeyboardDisplayOnProgrammaticFocusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics2<D>::IsColorFontEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics3<D>::DesiredCandidateWindowAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DesiredCandidateWindowAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3>**)this;
            check_hresult(_winrt_abi_type->get_DesiredCandidateWindowAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics3<D>::TextReadingOrderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextReadingOrderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3>**)this;
            check_hresult(_winrt_abi_type->get_TextReadingOrderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics4<D>::ClipboardCopyFormatProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ClipboardCopyFormatProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics4>**)this;
            check_hresult(_winrt_abi_type->get_ClipboardCopyFormatProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics5<D>::SelectionHighlightColorWhenNotFocusedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorWhenNotFocusedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorWhenNotFocusedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics5<D>::MaxLengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5>**)this;
            check_hresult(_winrt_abi_type->get_MaxLengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics6<D>::HorizontalTextAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics6<D>::CharacterCasingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterCasingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6>**)this;
            check_hresult(_winrt_abi_type->get_CharacterCasingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics6<D>::DisabledFormattingAcceleratorsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisabledFormattingAcceleratorsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6>**)this;
            check_hresult(_winrt_abi_type->get_DisabledFormattingAcceleratorsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::ContentLinkForegroundColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentLinkForegroundColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>**)this;
            check_hresult(_winrt_abi_type->get_ContentLinkForegroundColorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::ContentLinkBackgroundColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentLinkBackgroundColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>**)this;
            check_hresult(_winrt_abi_type->get_ContentLinkBackgroundColorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::ContentLinkProvidersProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentLinkProvidersProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>**)this;
            check_hresult(_winrt_abi_type->get_ContentLinkProvidersProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::HandwritingViewProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HandwritingViewProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>**)this;
            check_hresult(_winrt_abi_type->get_HandwritingViewProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics7<D>::IsHandwritingViewEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHandwritingViewEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>**)this;
            check_hresult(_winrt_abi_type->get_IsHandwritingViewEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics8<D>::SelectionFlyoutProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFlyoutProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFlyoutProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics8<D>::ProofingMenuFlyoutProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ProofingMenuFlyoutProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8>**)this;
            check_hresult(_winrt_abi_type->get_ProofingMenuFlyoutProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxStatics8<D>::DescriptionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8>**)this;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichEditBoxTextChangingEventArgs2<D>::IsContentChanging() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsContentChanging(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2>**)this;
            check_hresult(_winrt_abi_type->get_IsContentChanging(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontFamily() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        return winrt::Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontFamily(winrt::Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontWeight() const
    {
        winrt::Windows::UI::Text::FontWeight value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontWeight(winrt::Windows::UI::Text::FontWeight const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStyle() const
    {
        winrt::Windows::UI::Text::FontStyle value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStyle(winrt::Windows::UI::Text::FontStyle const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStretch() const
    {
        winrt::Windows::UI::Text::FontStretch value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStretch(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_FontStretch(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::FontStretch(winrt::Windows::UI::Text::FontStretch const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontStretch(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_FontStretch(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Foreground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Foreground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextWrapping() const
    {
        winrt::Windows::UI::Xaml::TextWrapping value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextWrapping(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_TextWrapping(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextWrapping(winrt::Windows::UI::Xaml::TextWrapping const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextWrapping(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_TextWrapping(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextTrimming() const
    {
        winrt::Windows::UI::Xaml::TextTrimming value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextTrimming(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_TextTrimming(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextTrimming(winrt::Windows::UI::Xaml::TextTrimming const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextTrimming(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_TextTrimming(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextAlignment() const
    {
        winrt::Windows::UI::Xaml::TextAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_TextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextAlignment(winrt::Windows::UI::Xaml::TextAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_TextAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Blocks() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Blocks(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_Blocks(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::BlockCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Padding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Padding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_LineHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineHeight(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LineHeight(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_LineHeight(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineStackingStrategy() const
    {
        winrt::Windows::UI::Xaml::LineStackingStrategy value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineStackingStrategy(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_LineStackingStrategy(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::LineStackingStrategy(winrt::Windows::UI::Xaml::LineStackingStrategy const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LineStackingStrategy(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_LineStackingStrategy(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::CharacterSpacing() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterSpacing(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_CharacterSpacing(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::CharacterSpacing(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CharacterSpacing(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_CharacterSpacing(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::OverflowContentTarget() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OverflowContentTarget(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_OverflowContentTarget(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::OverflowContentTarget(winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OverflowContentTarget(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_OverflowContentTarget(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::IsTextSelectionEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextSelectionEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_IsTextSelectionEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::IsTextSelectionEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTextSelectionEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_IsTextSelectionEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::HasOverflowContent() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HasOverflowContent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_HasOverflowContent(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectedText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_SelectedText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContentStart() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentStart(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_ContentStart(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContentEnd() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentEnd(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_ContentEnd(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionStart() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionStart(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_SelectionStart(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionEnd() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionEnd(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_SelectionEnd(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::BaselineOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BaselineOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_BaselineOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening(winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ContextMenuOpening_revoker>(this, ContextMenuOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ContextMenuOpening(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            _winrt_abi_type->remove_ContextMenuOpening(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::SelectAll() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectAll());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->SelectAll());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Select(winrt::Windows::UI::Xaml::Documents::TextPointer const& start, winrt::Windows::UI::Xaml::Documents::TextPointer const& end) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Select(*(void**)(&start), *(void**)(&end)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->Select(*(void**)(&start), *(void**)(&end)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::GetPositionFromPoint(winrt::Windows::Foundation::Point const& point) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetPositionFromPoint(impl::bind_in(point), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->GetPositionFromPoint(impl::bind_in(point), &result));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::Focus(winrt::Windows::UI::Xaml::FocusState const& value) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Focus(static_cast<int32_t>(value), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->Focus(static_cast<int32_t>(value), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextIndent() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextIndent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->get_TextIndent(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock<D>::TextIndent(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextIndent(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock>**)this;
            check_hresult(_winrt_abi_type->put_TextIndent(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::MaxLines() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLines(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_MaxLines(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::MaxLines(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxLines(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_MaxLines(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextLineBounds() const
    {
        winrt::Windows::UI::Xaml::TextLineBounds value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextLineBounds(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_TextLineBounds(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextLineBounds(winrt::Windows::UI::Xaml::TextLineBounds const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextLineBounds(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_TextLineBounds(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::SelectionHighlightColor() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColor(&value));
        }
        return winrt::Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::SelectionHighlightColor(winrt::Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColor(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColor(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::OpticalMarginAlignment() const
    {
        winrt::Windows::UI::Xaml::OpticalMarginAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::OpticalMarginAlignment(winrt::Windows::UI::Xaml::OpticalMarginAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OpticalMarginAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_OpticalMarginAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::IsColorFontEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::IsColorFontEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsColorFontEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_IsColorFontEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextReadingOrder() const
    {
        winrt::Windows::UI::Xaml::TextReadingOrder value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextReadingOrder(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_TextReadingOrder(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock2<D>::TextReadingOrder(winrt::Windows::UI::Xaml::TextReadingOrder const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextReadingOrder(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_TextReadingOrder(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock3<D>::IsTextScaleFactorEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock3>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock3<D>::IsTextScaleFactorEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock3>**)this;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock4<D>::TextDecorations() const
    {
        winrt::Windows::UI::Text::TextDecorations value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextDecorations(reinterpret_cast<uint32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock4>**)this;
            check_hresult(_winrt_abi_type->get_TextDecorations(reinterpret_cast<uint32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock4<D>::TextDecorations(winrt::Windows::UI::Text::TextDecorations const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextDecorations(static_cast<uint32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock4>**)this;
            check_hresult(_winrt_abi_type->put_TextDecorations(static_cast<uint32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmed() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextTrimmed(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)this;
            check_hresult(_winrt_abi_type->get_IsTextTrimmed(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::HorizontalTextAlignment() const
    {
        winrt::Windows::UI::Xaml::TextAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::HorizontalTextAlignment(winrt::Windows::UI::Xaml::TextAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::TextHighlighters() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextHighlighters(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)this;
            check_hresult(_winrt_abi_type->get_TextHighlighters(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Documents::TextHighlighter>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmedChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichTextBlock, winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_IsTextTrimmedChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)this;
            check_hresult(_winrt_abi_type->add_IsTextTrimmedChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmedChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichTextBlock, winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, IsTextTrimmedChanged_revoker>(this, IsTextTrimmedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock5<D>::IsTextTrimmedChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)&_winrt_casted_result;
            _winrt_abi_type->remove_IsTextTrimmedChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>**)this;
            _winrt_abi_type->remove_IsTextTrimmedChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock6<D>::SelectionFlyout() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFlyout(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFlyout(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock6<D>::SelectionFlyout(winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionFlyout(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6>**)this;
            check_hresult(_winrt_abi_type->put_SelectionFlyout(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlock6<D>::CopySelectionToClipboard() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CopySelectionToClipboard());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6>**)this;
            check_hresult(_winrt_abi_type->CopySelectionToClipboard());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::OverflowContentTarget() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OverflowContentTarget(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)this;
            check_hresult(_winrt_abi_type->get_OverflowContentTarget(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::OverflowContentTarget(winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OverflowContentTarget(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)this;
            check_hresult(_winrt_abi_type->put_OverflowContentTarget(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::Padding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)this;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::Padding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)this;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::ContentSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)this;
            check_hresult(_winrt_abi_type->get_ContentSource(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::RichTextBlock{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::HasOverflowContent() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HasOverflowContent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)this;
            check_hresult(_winrt_abi_type->get_HasOverflowContent(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::ContentStart() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentStart(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)this;
            check_hresult(_winrt_abi_type->get_ContentStart(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::ContentEnd() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentEnd(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)this;
            check_hresult(_winrt_abi_type->get_ContentEnd(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::BaselineOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BaselineOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)this;
            check_hresult(_winrt_abi_type->get_BaselineOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::GetPositionFromPoint(winrt::Windows::Foundation::Point const& point) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetPositionFromPoint(impl::bind_in(point), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)this;
            check_hresult(_winrt_abi_type->GetPositionFromPoint(impl::bind_in(point), &result));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow<D>::Focus(winrt::Windows::UI::Xaml::FocusState const& value) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Focus(static_cast<int32_t>(value), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>**)this;
            check_hresult(_winrt_abi_type->Focus(static_cast<int32_t>(value), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow2<D>::MaxLines() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLines(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2>**)this;
            check_hresult(_winrt_abi_type->get_MaxLines(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow2<D>::MaxLines(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxLines(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2>**)this;
            check_hresult(_winrt_abi_type->put_MaxLines(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmed() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextTrimmed(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>**)this;
            check_hresult(_winrt_abi_type->get_IsTextTrimmed(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmedChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow, winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_IsTextTrimmedChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>**)this;
            check_hresult(_winrt_abi_type->add_IsTextTrimmedChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmedChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow, winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, IsTextTrimmedChanged_revoker>(this, IsTextTrimmedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflow3<D>::IsTextTrimmedChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_IsTextTrimmedChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>**)this;
            _winrt_abi_type->remove_IsTextTrimmedChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics<D>::OverflowContentTargetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OverflowContentTargetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>**)this;
            check_hresult(_winrt_abi_type->get_OverflowContentTargetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics<D>::PaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics<D>::HasOverflowContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HasOverflowContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>**)this;
            check_hresult(_winrt_abi_type->get_HasOverflowContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics2<D>::MaxLinesProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLinesProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2>**)this;
            check_hresult(_winrt_abi_type->get_MaxLinesProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockOverflowStatics3<D>::IsTextTrimmedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextTrimmedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsTextTrimmedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontWeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::FontStretchProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStretchProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontStretchProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::ForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextWrappingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextWrappingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextWrappingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextTrimmingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextTrimmingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextTrimmingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::PaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::LineHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_LineHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::LineStackingStrategyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineStackingStrategyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_LineStackingStrategyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::CharacterSpacingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterSpacingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_CharacterSpacingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::OverflowContentTargetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OverflowContentTargetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_OverflowContentTargetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::IsTextSelectionEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextSelectionEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsTextSelectionEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::HasOverflowContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HasOverflowContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_HasOverflowContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::SelectedTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics<D>::TextIndentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextIndentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextIndentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::MaxLinesProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLinesProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_MaxLinesProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::TextLineBoundsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextLineBoundsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TextLineBoundsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::SelectionHighlightColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::OpticalMarginAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::IsColorFontEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics2<D>::TextReadingOrderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextReadingOrderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TextReadingOrderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics3<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics4<D>::TextDecorationsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextDecorationsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics4>**)this;
            check_hresult(_winrt_abi_type->get_TextDecorationsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics5<D>::IsTextTrimmedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextTrimmedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5>**)this;
            check_hresult(_winrt_abi_type->get_IsTextTrimmedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics5<D>::HorizontalTextAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRichTextBlockStatics6<D>::SelectionFlyoutProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFlyoutProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics6>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFlyoutProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::Height() const
    {
        winrt::Windows::UI::Xaml::GridLength value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRowDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRowDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Height(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)this;
            check_hresult(_winrt_abi_type->get_Height(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::Height(winrt::Windows::UI::Xaml::GridLength const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRowDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRowDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Height(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)this;
            check_hresult(_winrt_abi_type->put_Height(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MaxHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRowDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRowDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)this;
            check_hresult(_winrt_abi_type->get_MaxHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MaxHeight(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRowDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRowDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxHeight(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)this;
            check_hresult(_winrt_abi_type->put_MaxHeight(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MinHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRowDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRowDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)this;
            check_hresult(_winrt_abi_type->get_MinHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::MinHeight(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRowDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRowDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinHeight(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)this;
            check_hresult(_winrt_abi_type->put_MinHeight(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinition<D>::ActualHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRowDefinition>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRowDefinition, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ActualHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinition>**)this;
            check_hresult(_winrt_abi_type->get_ActualHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinitionStatics<D>::HeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinitionStatics<D>::MaxHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IRowDefinitionStatics<D>::MinHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollAnchorProvider<D>::CurrentAnchor() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CurrentAnchor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider>**)this;
            check_hresult(_winrt_abi_type->get_CurrentAnchor(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollAnchorProvider<D>::RegisterAnchorCandidate(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RegisterAnchorCandidate(*(void**)(&element)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider>**)this;
            check_hresult(_winrt_abi_type->RegisterAnchorCandidate(*(void**)(&element)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollAnchorProvider<D>::UnregisterAnchorCandidate(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->UnregisterAnchorCandidate(*(void**)(&element)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider>**)this;
            check_hresult(_winrt_abi_type->UnregisterAnchorCandidate(*(void**)(&element)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanVerticallyScroll() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanVerticallyScroll(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_CanVerticallyScroll(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanVerticallyScroll(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CanVerticallyScroll(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_CanVerticallyScroll(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanHorizontallyScroll() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanHorizontallyScroll(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_CanHorizontallyScroll(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::CanHorizontallyScroll(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CanHorizontallyScroll(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_CanHorizontallyScroll(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ExtentWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExtentWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_ExtentWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ExtentHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExtentHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_ExtentHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ViewportWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ViewportWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_ViewportWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ViewportHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ViewportHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_ViewportHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::HorizontalOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::VerticalOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_VerticalOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ScrollOwner() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ScrollOwner(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->get_ScrollOwner(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::ScrollOwner(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ScrollOwner(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->put_ScrollOwner(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineUp() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->LineUp());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->LineUp());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineDown() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->LineDown());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->LineDown());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineLeft() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->LineLeft());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->LineLeft());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::LineRight() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->LineRight());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->LineRight());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageUp() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->PageUp());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->PageUp());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageDown() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->PageDown());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->PageDown());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageLeft() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->PageLeft());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->PageLeft());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::PageRight() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->PageRight());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->PageRight());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelUp() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->MouseWheelUp());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->MouseWheelUp());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelDown() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->MouseWheelDown());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->MouseWheelDown());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelLeft() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->MouseWheelLeft());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->MouseWheelLeft());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MouseWheelRight() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->MouseWheelRight());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->MouseWheelRight());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::SetHorizontalOffset(double offset) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetHorizontalOffset(offset));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->SetHorizontalOffset(offset));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::SetVerticalOffset(double offset) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetVerticalOffset(offset));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->SetVerticalOffset(offset));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter<D>::MakeVisible(winrt::Windows::UI::Xaml::UIElement const& visual, winrt::Windows::Foundation::Rect const& rectangle) const
    {
        winrt::Windows::Foundation::Rect result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->MakeVisible(*(void**)(&visual), impl::bind_in(rectangle), put_abi(result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>**)this;
            check_hresult(_winrt_abi_type->MakeVisible(*(void**)(&visual), impl::bind_in(rectangle), put_abi(result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::CanContentRenderOutsideBounds() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanContentRenderOutsideBounds(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>**)this;
            check_hresult(_winrt_abi_type->get_CanContentRenderOutsideBounds(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::CanContentRenderOutsideBounds(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CanContentRenderOutsideBounds(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>**)this;
            check_hresult(_winrt_abi_type->put_CanContentRenderOutsideBounds(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::SizesContentToTemplatedParent() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SizesContentToTemplatedParent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>**)this;
            check_hresult(_winrt_abi_type->get_SizesContentToTemplatedParent(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenter2<D>::SizesContentToTemplatedParent(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SizesContentToTemplatedParent(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>**)this;
            check_hresult(_winrt_abi_type->put_SizesContentToTemplatedParent(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenterStatics2<D>::CanContentRenderOutsideBoundsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanContentRenderOutsideBoundsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CanContentRenderOutsideBoundsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollContentPresenterStatics2<D>::SizesContentToTemplatedParentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SizesContentToTemplatedParentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SizesContentToTemplatedParentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollBarVisibility() const
    {
        winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalScrollBarVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalScrollBarVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollBarVisibility(winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalScrollBarVisibility(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalScrollBarVisibility(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollBarVisibility() const
    {
        winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalScrollBarVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_VerticalScrollBarVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollBarVisibility(winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalScrollBarVisibility(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_VerticalScrollBarVisibility(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalRailEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHorizontalRailEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_IsHorizontalRailEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalRailEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsHorizontalRailEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_IsHorizontalRailEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalRailEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsVerticalRailEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_IsVerticalRailEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalRailEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsVerticalRailEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_IsVerticalRailEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalScrollChainingEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHorizontalScrollChainingEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_IsHorizontalScrollChainingEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsHorizontalScrollChainingEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsHorizontalScrollChainingEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_IsHorizontalScrollChainingEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalScrollChainingEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsVerticalScrollChainingEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_IsVerticalScrollChainingEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsVerticalScrollChainingEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsVerticalScrollChainingEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_IsVerticalScrollChainingEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomChainingEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomChainingEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomChainingEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomChainingEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsZoomChainingEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_IsZoomChainingEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsScrollInertiaEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsScrollInertiaEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_IsScrollInertiaEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsScrollInertiaEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsScrollInertiaEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_IsScrollInertiaEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomInertiaEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomInertiaEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomInertiaEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsZoomInertiaEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsZoomInertiaEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_IsZoomInertiaEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollMode() const
    {
        winrt::Windows::UI::Xaml::Controls::ScrollMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalScrollMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalScrollMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalScrollMode(winrt::Windows::UI::Xaml::Controls::ScrollMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalScrollMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalScrollMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollMode() const
    {
        winrt::Windows::UI::Xaml::Controls::ScrollMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalScrollMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_VerticalScrollMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalScrollMode(winrt::Windows::UI::Xaml::Controls::ScrollMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalScrollMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_VerticalScrollMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomMode() const
    {
        winrt::Windows::UI::Xaml::Controls::ZoomMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ZoomMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomMode(winrt::Windows::UI::Xaml::Controls::ZoomMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ZoomMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_ZoomMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsAlignment() const
    {
        winrt::Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalSnapPointsAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalSnapPointsAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsAlignment(winrt::Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalSnapPointsAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalSnapPointsAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsAlignment() const
    {
        winrt::Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalSnapPointsAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_VerticalSnapPointsAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsAlignment(winrt::Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalSnapPointsAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_VerticalSnapPointsAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsType() const
    {
        winrt::Windows::UI::Xaml::Controls::SnapPointsType value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalSnapPointsType(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalSnapPointsType(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalSnapPointsType(winrt::Windows::UI::Xaml::Controls::SnapPointsType const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalSnapPointsType(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalSnapPointsType(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsType() const
    {
        winrt::Windows::UI::Xaml::Controls::SnapPointsType value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalSnapPointsType(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_VerticalSnapPointsType(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalSnapPointsType(winrt::Windows::UI::Xaml::Controls::SnapPointsType const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalSnapPointsType(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_VerticalSnapPointsType(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomSnapPointsType() const
    {
        winrt::Windows::UI::Xaml::Controls::SnapPointsType value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomSnapPointsType(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ZoomSnapPointsType(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomSnapPointsType(winrt::Windows::UI::Xaml::Controls::SnapPointsType const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ZoomSnapPointsType(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_ZoomSnapPointsType(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::HorizontalOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewportWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ViewportWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ViewportWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollableWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ScrollableWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ScrollableWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ComputedHorizontalScrollBarVisibility() const
    {
        winrt::Windows::UI::Xaml::Visibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ComputedHorizontalScrollBarVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ComputedHorizontalScrollBarVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ExtentWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExtentWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ExtentWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::VerticalOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_VerticalOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewportHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ViewportHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ViewportHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollableHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ScrollableHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ScrollableHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ComputedVerticalScrollBarVisibility() const
    {
        winrt::Windows::UI::Xaml::Visibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ComputedVerticalScrollBarVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ComputedVerticalScrollBarVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ExtentHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExtentHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ExtentHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MinZoomFactor() const
    {
        float value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinZoomFactor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_MinZoomFactor(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MinZoomFactor(float value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinZoomFactor(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_MinZoomFactor(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MaxZoomFactor() const
    {
        float value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxZoomFactor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_MaxZoomFactor(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::MaxZoomFactor(float value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxZoomFactor(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_MaxZoomFactor(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomFactor() const
    {
        float value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomFactor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ZoomFactor(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomSnapPoints() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomSnapPoints(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_ZoomSnapPoints(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<float>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewChanged(winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ViewChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->add_ViewChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewChanged(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ViewChanged_revoker>(this, ViewChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ViewChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ViewChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            _winrt_abi_type->remove_ViewChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollToHorizontalOffset(double offset) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ScrollToHorizontalOffset(offset));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->ScrollToHorizontalOffset(offset));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ScrollToVerticalOffset(double offset) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ScrollToVerticalOffset(offset));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->ScrollToVerticalOffset(offset));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::ZoomToFactor(float factor) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ZoomToFactor(factor));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->ZoomToFactor(factor));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::InvalidateScrollInfo() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->InvalidateScrollInfo());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->InvalidateScrollInfo());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsDeferredScrollingEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDeferredScrollingEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_IsDeferredScrollingEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::IsDeferredScrollingEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsDeferredScrollingEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_IsDeferredScrollingEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::BringIntoViewOnFocusChange() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BringIntoViewOnFocusChange(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->get_BringIntoViewOnFocusChange(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer<D>::BringIntoViewOnFocusChange(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BringIntoViewOnFocusChange(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer>**)this;
            check_hresult(_winrt_abi_type->put_BringIntoViewOnFocusChange(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopLeftHeader() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopLeftHeader(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)this;
            check_hresult(_winrt_abi_type->get_TopLeftHeader(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopLeftHeader(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TopLeftHeader(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)this;
            check_hresult(_winrt_abi_type->put_TopLeftHeader(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::LeftHeader() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftHeader(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)this;
            check_hresult(_winrt_abi_type->get_LeftHeader(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::LeftHeader(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LeftHeader(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)this;
            check_hresult(_winrt_abi_type->put_LeftHeader(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopHeader() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopHeader(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)this;
            check_hresult(_winrt_abi_type->get_TopHeader(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::TopHeader(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TopHeader(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)this;
            check_hresult(_winrt_abi_type->put_TopHeader(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ViewChanging(winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ViewChanging(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)this;
            check_hresult(_winrt_abi_type->add_ViewChanging(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ViewChanging(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ViewChanging_revoker>(this, ViewChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ViewChanging(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ViewChanging(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)this;
            _winrt_abi_type->remove_ViewChanging(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ChangeView(winrt::Windows::Foundation::IReference<double> const& horizontalOffset, winrt::Windows::Foundation::IReference<double> const& verticalOffset, winrt::Windows::Foundation::IReference<float> const& zoomFactor) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ChangeView(*(void**)(&horizontalOffset), *(void**)(&verticalOffset), *(void**)(&zoomFactor), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)this;
            check_hresult(_winrt_abi_type->ChangeView(*(void**)(&horizontalOffset), *(void**)(&verticalOffset), *(void**)(&zoomFactor), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer2<D>::ChangeView(winrt::Windows::Foundation::IReference<double> const& horizontalOffset, winrt::Windows::Foundation::IReference<double> const& verticalOffset, winrt::Windows::Foundation::IReference<float> const& zoomFactor, bool disableAnimation) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ChangeViewWithOptionalAnimation(*(void**)(&horizontalOffset), *(void**)(&verticalOffset), *(void**)(&zoomFactor), disableAnimation, &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer2>**)this;
            check_hresult(_winrt_abi_type->ChangeViewWithOptionalAnimation(*(void**)(&horizontalOffset), *(void**)(&verticalOffset), *(void**)(&zoomFactor), disableAnimation, &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted(winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DirectManipulationStarted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer3>**)this;
            check_hresult(_winrt_abi_type->add_DirectManipulationStarted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, DirectManipulationStarted_revoker>(this, DirectManipulationStarted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationStarted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DirectManipulationStarted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer3>**)this;
            _winrt_abi_type->remove_DirectManipulationStarted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted(winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DirectManipulationCompleted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer3>**)this;
            check_hresult(_winrt_abi_type->add_DirectManipulationCompleted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, DirectManipulationCompleted_revoker>(this, DirectManipulationCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer3<D>::DirectManipulationCompleted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DirectManipulationCompleted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer3>**)this;
            _winrt_abi_type->remove_DirectManipulationCompleted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::ReduceViewportForCoreInputViewOcclusions() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ReduceViewportForCoreInputViewOcclusions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)this;
            check_hresult(_winrt_abi_type->get_ReduceViewportForCoreInputViewOcclusions(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::ReduceViewportForCoreInputViewOcclusions(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ReduceViewportForCoreInputViewOcclusions(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)this;
            check_hresult(_winrt_abi_type->put_ReduceViewportForCoreInputViewOcclusions(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::HorizontalAnchorRatio() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalAnchorRatio(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalAnchorRatio(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::HorizontalAnchorRatio(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalAnchorRatio(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalAnchorRatio(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::VerticalAnchorRatio() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalAnchorRatio(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)this;
            check_hresult(_winrt_abi_type->get_VerticalAnchorRatio(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::VerticalAnchorRatio(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalAnchorRatio(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)this;
            check_hresult(_winrt_abi_type->put_VerticalAnchorRatio(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::CanContentRenderOutsideBounds() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanContentRenderOutsideBounds(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)this;
            check_hresult(_winrt_abi_type->get_CanContentRenderOutsideBounds(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::CanContentRenderOutsideBounds(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CanContentRenderOutsideBounds(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)this;
            check_hresult(_winrt_abi_type->put_CanContentRenderOutsideBounds(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::AnchorRequested(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ScrollViewer, winrt::Windows::UI::Xaml::Controls::AnchorRequestedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_AnchorRequested(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)this;
            check_hresult(_winrt_abi_type->add_AnchorRequested(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::AnchorRequested(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ScrollViewer, winrt::Windows::UI::Xaml::Controls::AnchorRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, AnchorRequested_revoker>(this, AnchorRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewer4<D>::AnchorRequested(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewer4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)&_winrt_casted_result;
            _winrt_abi_type->remove_AnchorRequested(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewer4>**)this;
            _winrt_abi_type->remove_AnchorRequested(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalSnapPointsAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalSnapPointsAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalSnapPointsAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalSnapPointsAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalSnapPointsAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalSnapPointsAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalSnapPointsTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalSnapPointsTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalSnapPointsTypeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalSnapPointsTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalSnapPointsTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalSnapPointsTypeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomSnapPointsTypeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomSnapPointsTypeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ZoomSnapPointsTypeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalOffsetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalOffsetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalOffsetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ViewportWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ViewportWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ViewportWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ScrollableWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ScrollableWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ScrollableWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ComputedHorizontalScrollBarVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ComputedHorizontalScrollBarVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ComputedHorizontalScrollBarVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ExtentWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExtentWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ExtentWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalOffsetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalOffsetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalOffsetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ViewportHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ViewportHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ViewportHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ScrollableHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ScrollableHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ScrollableHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ComputedVerticalScrollBarVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ComputedVerticalScrollBarVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ComputedVerticalScrollBarVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ExtentHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExtentHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ExtentHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::MinZoomFactorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinZoomFactorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinZoomFactorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::MaxZoomFactorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxZoomFactorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxZoomFactorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomFactorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomFactorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ZoomFactorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomSnapPointsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomSnapPointsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ZoomSnapPointsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalScrollBarVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalScrollBarVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalScrollBarVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetHorizontalScrollBarVisibility(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetHorizontalScrollBarVisibility(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetHorizontalScrollBarVisibility(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetHorizontalScrollBarVisibility(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility const& horizontalScrollBarVisibility) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetHorizontalScrollBarVisibility(*(void**)(&element), static_cast<int32_t>(horizontalScrollBarVisibility)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetHorizontalScrollBarVisibility(*(void**)(&element), static_cast<int32_t>(horizontalScrollBarVisibility)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalScrollBarVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalScrollBarVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalScrollBarVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetVerticalScrollBarVisibility(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetVerticalScrollBarVisibility(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetVerticalScrollBarVisibility(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetVerticalScrollBarVisibility(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility const& verticalScrollBarVisibility) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetVerticalScrollBarVisibility(*(void**)(&element), static_cast<int32_t>(verticalScrollBarVisibility)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetVerticalScrollBarVisibility(*(void**)(&element), static_cast<int32_t>(verticalScrollBarVisibility)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsHorizontalRailEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHorizontalRailEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsHorizontalRailEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsHorizontalRailEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsHorizontalRailEnabled(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsHorizontalRailEnabled(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsHorizontalRailEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalRailEnabled) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsHorizontalRailEnabled(*(void**)(&element), isHorizontalRailEnabled));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsHorizontalRailEnabled(*(void**)(&element), isHorizontalRailEnabled));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsVerticalRailEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsVerticalRailEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsVerticalRailEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsVerticalRailEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsVerticalRailEnabled(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsVerticalRailEnabled(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsVerticalRailEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isVerticalRailEnabled) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsVerticalRailEnabled(*(void**)(&element), isVerticalRailEnabled));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsVerticalRailEnabled(*(void**)(&element), isVerticalRailEnabled));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsHorizontalScrollChainingEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHorizontalScrollChainingEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsHorizontalScrollChainingEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsHorizontalScrollChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsHorizontalScrollChainingEnabled(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsHorizontalScrollChainingEnabled(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsHorizontalScrollChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalScrollChainingEnabled) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsHorizontalScrollChainingEnabled(*(void**)(&element), isHorizontalScrollChainingEnabled));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsHorizontalScrollChainingEnabled(*(void**)(&element), isHorizontalScrollChainingEnabled));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsVerticalScrollChainingEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsVerticalScrollChainingEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsVerticalScrollChainingEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsVerticalScrollChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsVerticalScrollChainingEnabled(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsVerticalScrollChainingEnabled(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsVerticalScrollChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isVerticalScrollChainingEnabled) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsVerticalScrollChainingEnabled(*(void**)(&element), isVerticalScrollChainingEnabled));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsVerticalScrollChainingEnabled(*(void**)(&element), isVerticalScrollChainingEnabled));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsZoomChainingEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomChainingEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomChainingEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsZoomChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsZoomChainingEnabled(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsZoomChainingEnabled(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsZoomChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isZoomChainingEnabled) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsZoomChainingEnabled(*(void**)(&element), isZoomChainingEnabled));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsZoomChainingEnabled(*(void**)(&element), isZoomChainingEnabled));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsScrollInertiaEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsScrollInertiaEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsScrollInertiaEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsScrollInertiaEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsScrollInertiaEnabled(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsScrollInertiaEnabled(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsScrollInertiaEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isScrollInertiaEnabled) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsScrollInertiaEnabled(*(void**)(&element), isScrollInertiaEnabled));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsScrollInertiaEnabled(*(void**)(&element), isScrollInertiaEnabled));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsZoomInertiaEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomInertiaEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomInertiaEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsZoomInertiaEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsZoomInertiaEnabled(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsZoomInertiaEnabled(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsZoomInertiaEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isZoomInertiaEnabled) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsZoomInertiaEnabled(*(void**)(&element), isZoomInertiaEnabled));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsZoomInertiaEnabled(*(void**)(&element), isZoomInertiaEnabled));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::HorizontalScrollModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalScrollModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalScrollModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetHorizontalScrollMode(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        winrt::Windows::UI::Xaml::Controls::ScrollMode result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetHorizontalScrollMode(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetHorizontalScrollMode(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetHorizontalScrollMode(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::ScrollMode const& horizontalScrollMode) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetHorizontalScrollMode(*(void**)(&element), static_cast<int32_t>(horizontalScrollMode)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetHorizontalScrollMode(*(void**)(&element), static_cast<int32_t>(horizontalScrollMode)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::VerticalScrollModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalScrollModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalScrollModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetVerticalScrollMode(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        winrt::Windows::UI::Xaml::Controls::ScrollMode result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetVerticalScrollMode(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetVerticalScrollMode(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetVerticalScrollMode(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::ScrollMode const& verticalScrollMode) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetVerticalScrollMode(*(void**)(&element), static_cast<int32_t>(verticalScrollMode)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetVerticalScrollMode(*(void**)(&element), static_cast<int32_t>(verticalScrollMode)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::ZoomModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ZoomModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetZoomMode(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        winrt::Windows::UI::Xaml::Controls::ZoomMode result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetZoomMode(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetZoomMode(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetZoomMode(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::ZoomMode const& zoomMode) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetZoomMode(*(void**)(&element), static_cast<int32_t>(zoomMode)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetZoomMode(*(void**)(&element), static_cast<int32_t>(zoomMode)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::IsDeferredScrollingEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDeferredScrollingEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsDeferredScrollingEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetIsDeferredScrollingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsDeferredScrollingEnabled(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsDeferredScrollingEnabled(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetIsDeferredScrollingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isDeferredScrollingEnabled) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetIsDeferredScrollingEnabled(*(void**)(&element), isDeferredScrollingEnabled));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetIsDeferredScrollingEnabled(*(void**)(&element), isDeferredScrollingEnabled));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::BringIntoViewOnFocusChangeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BringIntoViewOnFocusChangeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->get_BringIntoViewOnFocusChangeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::GetBringIntoViewOnFocusChange(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetBringIntoViewOnFocusChange(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->GetBringIntoViewOnFocusChange(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics<D>::SetBringIntoViewOnFocusChange(winrt::Windows::UI::Xaml::DependencyObject const& element, bool bringIntoViewOnFocusChange) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetBringIntoViewOnFocusChange(*(void**)(&element), bringIntoViewOnFocusChange));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>**)this;
            check_hresult(_winrt_abi_type->SetBringIntoViewOnFocusChange(*(void**)(&element), bringIntoViewOnFocusChange));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics2<D>::TopLeftHeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopLeftHeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TopLeftHeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics2<D>::LeftHeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftHeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2>**)this;
            check_hresult(_winrt_abi_type->get_LeftHeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics2<D>::TopHeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopHeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TopHeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::ReduceViewportForCoreInputViewOcclusionsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ReduceViewportForCoreInputViewOcclusionsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)this;
            check_hresult(_winrt_abi_type->get_ReduceViewportForCoreInputViewOcclusionsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::HorizontalAnchorRatioProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalAnchorRatioProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalAnchorRatioProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::VerticalAnchorRatioProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalAnchorRatioProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)this;
            check_hresult(_winrt_abi_type->get_VerticalAnchorRatioProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::CanContentRenderOutsideBoundsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanContentRenderOutsideBoundsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)this;
            check_hresult(_winrt_abi_type->get_CanContentRenderOutsideBoundsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::GetCanContentRenderOutsideBounds(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetCanContentRenderOutsideBounds(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)this;
            check_hresult(_winrt_abi_type->GetCanContentRenderOutsideBounds(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerStatics4<D>::SetCanContentRenderOutsideBounds(winrt::Windows::UI::Xaml::DependencyObject const& element, bool canContentRenderOutsideBounds) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetCanContentRenderOutsideBounds(*(void**)(&element), canContentRenderOutsideBounds));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>**)this;
            check_hresult(_winrt_abi_type->SetCanContentRenderOutsideBounds(*(void**)(&element), canContentRenderOutsideBounds));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerView<D>::HorizontalOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerView>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerView<D>::VerticalOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerView>**)this;
            check_hresult(_winrt_abi_type->get_VerticalOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerView<D>::ZoomFactor() const
    {
        float value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomFactor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerView>**)this;
            check_hresult(_winrt_abi_type->get_ZoomFactor(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangedEventArgs<D>::IsIntermediate() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsIntermediate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_IsIntermediate(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangingEventArgs<D>::NextView() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NextView(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_NextView(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ScrollViewerView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangingEventArgs<D>::FinalView() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FinalView(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_FinalView(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ScrollViewerView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IScrollViewerViewChangingEventArgs<D>::IsInertial() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsInertial(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_IsInertial(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SearchHistoryEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->get_SearchHistoryEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SearchHistoryEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->put_SearchHistoryEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryContext() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SearchHistoryContext(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->get_SearchHistoryContext(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SearchHistoryContext(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SearchHistoryContext(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->put_SearchHistoryContext(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PlaceholderText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PlaceholderText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_QueryText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->get_QueryText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_QueryText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->put_QueryText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::FocusOnKeyboardInput() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FocusOnKeyboardInput(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->get_FocusOnKeyboardInput(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::FocusOnKeyboardInput(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FocusOnKeyboardInput(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->put_FocusOnKeyboardInput(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ChooseSuggestionOnEnter() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ChooseSuggestionOnEnter(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->get_ChooseSuggestionOnEnter(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ChooseSuggestionOnEnter(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ChooseSuggestionOnEnter(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->put_ChooseSuggestionOnEnter(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_QueryChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->add_QueryChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, QueryChanged_revoker>(this, QueryChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QueryChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_QueryChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            _winrt_abi_type->remove_QueryChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SuggestionsRequested(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SuggestionsRequested(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->add_SuggestionsRequested(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SuggestionsRequested(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SuggestionsRequested_revoker>(this, SuggestionsRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SuggestionsRequested(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SuggestionsRequested(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            _winrt_abi_type->remove_SuggestionsRequested(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QuerySubmitted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_QuerySubmitted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->add_QuerySubmitted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QuerySubmitted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, QuerySubmitted_revoker>(this, QuerySubmitted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::QuerySubmitted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_QuerySubmitted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            _winrt_abi_type->remove_QuerySubmitted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ResultSuggestionChosen(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ResultSuggestionChosen(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->add_ResultSuggestionChosen(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ResultSuggestionChosen(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ResultSuggestionChosen_revoker>(this, ResultSuggestionChosen(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::ResultSuggestionChosen(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ResultSuggestionChosen(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            _winrt_abi_type->remove_ResultSuggestionChosen(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PrepareForFocusOnKeyboardInput(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::RoutedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PrepareForFocusOnKeyboardInput(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->add_PrepareForFocusOnKeyboardInput(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PrepareForFocusOnKeyboardInput(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::RoutedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PrepareForFocusOnKeyboardInput_revoker>(this, PrepareForFocusOnKeyboardInput(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::PrepareForFocusOnKeyboardInput(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PrepareForFocusOnKeyboardInput(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            _winrt_abi_type->remove_PrepareForFocusOnKeyboardInput(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBox<D>::SetLocalContentSuggestionSettings(winrt::Windows::ApplicationModel::Search::LocalContentSuggestionSettings const& settings) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetLocalContentSuggestionSettings(*(void**)(&settings)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBox>**)this;
            check_hresult(_winrt_abi_type->SetLocalContentSuggestionSettings(*(void**)(&settings)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SearchBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQueryChangedEventArgs<D>::QueryText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_QueryText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_QueryText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQueryChangedEventArgs<D>::Language() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Language(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Language(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQueryChangedEventArgs<D>::LinguisticDetails() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LinguisticDetails(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_LinguisticDetails(&value));
        }
        return winrt::Windows::ApplicationModel::Search::SearchQueryLinguisticDetails{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::QueryText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_QueryText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_QueryText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::Language() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Language(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Language(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::LinguisticDetails() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LinguisticDetails(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_LinguisticDetails(&value));
        }
        return winrt::Windows::ApplicationModel::Search::SearchQueryLinguisticDetails{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxQuerySubmittedEventArgs<D>::KeyModifiers() const
    {
        winrt::Windows::System::VirtualKeyModifiers value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_KeyModifiers(reinterpret_cast<uint32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_KeyModifiers(reinterpret_cast<uint32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxResultSuggestionChosenEventArgs<D>::Tag() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Tag(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Tag(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxResultSuggestionChosenEventArgs<D>::KeyModifiers() const
    {
        winrt::Windows::System::VirtualKeyModifiers value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_KeyModifiers(reinterpret_cast<uint32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_KeyModifiers(reinterpret_cast<uint32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::SearchHistoryEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SearchHistoryEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_SearchHistoryEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::SearchHistoryContextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SearchHistoryContextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_SearchHistoryContextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::PlaceholderTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::QueryTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_QueryTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_QueryTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::FocusOnKeyboardInputProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FocusOnKeyboardInputProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_FocusOnKeyboardInputProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxStatics<D>::ChooseSuggestionOnEnterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ChooseSuggestionOnEnterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_ChooseSuggestionOnEnterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::QueryText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_QueryText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_QueryText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::Language() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Language(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Language(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::LinguisticDetails() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LinguisticDetails(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_LinguisticDetails(&value));
        }
        return winrt::Windows::ApplicationModel::Search::SearchQueryLinguisticDetails{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISearchBoxSuggestionsRequestedEventArgs<D>::Request() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Request(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Request(&value));
        }
        return winrt::Windows::ApplicationModel::Search::SearchSuggestionsRequest{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISectionsInViewChangedEventArgs<D>::AddedSections() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AddedSections(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_AddedSections(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::HubSection>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISectionsInViewChangedEventArgs<D>::RemovedSections() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RemovedSections(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_RemovedSections(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::HubSection>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISelectionChangedEventArgs<D>::AddedItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AddedItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_AddedItems(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISelectionChangedEventArgs<D>::RemovedItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RemovedItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_RemovedItems(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISelectionChangedEventArgsFactory<D>::CreateInstanceWithRemovedItemsAndAddedItems(param::vector<winrt::Windows::Foundation::IInspectable> const& removedItems, param::vector<winrt::Windows::Foundation::IInspectable> const& addedItems, winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstanceWithRemovedItemsAndAddedItems(*(void**)(&removedItems), *(void**)(&addedItems), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstanceWithRemovedItemsAndAddedItems(*(void**)(&removedItems), *(void**)(&addedItems), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SelectionChangedEventArgs{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedInView() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomedInView(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->get_ZoomedInView(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedInView(winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ZoomedInView(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->put_ZoomedInView(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedOutView() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomedOutView(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->get_ZoomedOutView(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ZoomedOutView(winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ZoomedOutView(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->put_ZoomedOutView(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomedInViewActive() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomedInViewActive(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomedInViewActive(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomedInViewActive(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsZoomedInViewActive(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->put_IsZoomedInViewActive(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::CanChangeViews() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanChangeViews(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->get_CanChangeViews(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::CanChangeViews(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CanChangeViews(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->put_CanChangeViews(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted(winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ViewChangeStarted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->add_ViewChangeStarted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ViewChangeStarted_revoker>(this, ViewChangeStarted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeStarted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ViewChangeStarted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            _winrt_abi_type->remove_ViewChangeStarted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted(winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ViewChangeCompleted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->add_ViewChangeCompleted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ViewChangeCompleted_revoker>(this, ViewChangeCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ViewChangeCompleted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ViewChangeCompleted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            _winrt_abi_type->remove_ViewChangeCompleted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::ToggleActiveView() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ToggleActiveView());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->ToggleActiveView());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomOutButtonEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomOutButtonEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomOutButtonEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoom<D>::IsZoomOutButtonEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoom, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsZoomOutButtonEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoom>**)this;
            check_hresult(_winrt_abi_type->put_IsZoomOutButtonEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::SemanticZoomOwner() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SemanticZoomOwner(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->get_SemanticZoomOwner(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::SemanticZoom{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::SemanticZoomOwner(winrt::Windows::UI::Xaml::Controls::SemanticZoom const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SemanticZoomOwner(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->put_SemanticZoomOwner(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsActiveView() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsActiveView(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->get_IsActiveView(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsActiveView(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsActiveView(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->put_IsActiveView(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsZoomedInView() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomedInView(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomedInView(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::IsZoomedInView(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsZoomedInView(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->put_IsZoomedInView(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::InitializeViewChange() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->InitializeViewChange());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->InitializeViewChange());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::CompleteViewChange() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CompleteViewChange());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->CompleteViewChange());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::MakeVisible(winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const& item) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->MakeVisible(*(void**)(&item)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->MakeVisible(*(void**)(&item)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::StartViewChangeFrom(winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const& source, winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const& destination) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->StartViewChangeFrom(*(void**)(&source), *(void**)(&destination)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->StartViewChangeFrom(*(void**)(&source), *(void**)(&destination)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::StartViewChangeTo(winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const& source, winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const& destination) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->StartViewChangeTo(*(void**)(&source), *(void**)(&destination)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->StartViewChangeTo(*(void**)(&source), *(void**)(&destination)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::CompleteViewChangeFrom(winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const& source, winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const& destination) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CompleteViewChangeFrom(*(void**)(&source), *(void**)(&destination)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->CompleteViewChangeFrom(*(void**)(&source), *(void**)(&destination)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomInformation<D>::CompleteViewChangeTo(winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const& source, winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const& destination) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CompleteViewChangeTo(*(void**)(&source), *(void**)(&destination)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>**)this;
            check_hresult(_winrt_abi_type->CompleteViewChangeTo(*(void**)(&source), *(void**)(&destination)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Item() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>**)this;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Item(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Item(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>**)this;
            check_hresult(_winrt_abi_type->put_Item(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Bounds() const
    {
        winrt::Windows::Foundation::Rect value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Bounds(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>**)this;
            check_hresult(_winrt_abi_type->get_Bounds(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomLocation<D>::Bounds(winrt::Windows::Foundation::Rect const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Bounds(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>**)this;
            check_hresult(_winrt_abi_type->put_Bounds(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::ZoomedInViewProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomedInViewProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>**)this;
            check_hresult(_winrt_abi_type->get_ZoomedInViewProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::ZoomedOutViewProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ZoomedOutViewProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>**)this;
            check_hresult(_winrt_abi_type->get_ZoomedOutViewProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::IsZoomedInViewActiveProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomedInViewActiveProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomedInViewActiveProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::CanChangeViewsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanChangeViewsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>**)this;
            check_hresult(_winrt_abi_type->get_CanChangeViewsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomStatics<D>::IsZoomOutButtonEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsZoomOutButtonEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsZoomOutButtonEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::IsSourceZoomedInView() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSourceZoomedInView(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_IsSourceZoomedInView(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::IsSourceZoomedInView(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSourceZoomedInView(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_IsSourceZoomedInView(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::SourceItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SourceItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_SourceItem(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::SourceItem(winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SourceItem(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_SourceItem(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::DestinationItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DestinationItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_DestinationItem(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISemanticZoomViewChangedEventArgs<D>::DestinationItem(winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DestinationItem(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_DestinationItem(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Title() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Title(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->get_Title(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Title(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Title(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->put_Title(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->get_HeaderBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->put_HeaderBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->get_HeaderForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::HeaderForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->put_HeaderForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::IconSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IconSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->get_IconSource(&value));
        }
        return winrt::Windows::UI::Xaml::Media::ImageSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::IconSource(winrt::Windows::UI::Xaml::Media::ImageSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IconSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->put_IconSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::SettingsFlyoutTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick(winrt::Windows::UI::Xaml::Controls::BackClickEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_BackClick(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->add_BackClick(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::BackClickEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, BackClick_revoker>(this, BackClick(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::BackClick(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            _winrt_abi_type->remove_BackClick(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            _winrt_abi_type->remove_BackClick(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Show() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Show());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->Show());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::ShowIndependent() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ShowIndependent());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->ShowIndependent());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyout<D>::Hide() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Hide());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>**)this;
            check_hresult(_winrt_abi_type->Hide());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyoutFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SettingsFlyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::TitleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TitleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_TitleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::HeaderBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::HeaderForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISettingsFlyoutStatics<D>::IconSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IconSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_IconSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IntermediateValue() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IntermediateValue(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->get_IntermediateValue(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IntermediateValue(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IntermediateValue(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->put_IntermediateValue(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::StepFrequency() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StepFrequency(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->get_StepFrequency(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::StepFrequency(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_StepFrequency(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->put_StepFrequency(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::SnapsTo() const
    {
        winrt::Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SnapsTo(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->get_SnapsTo(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::SnapsTo(winrt::Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SnapsTo(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->put_SnapsTo(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::TickFrequency() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TickFrequency(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->get_TickFrequency(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::TickFrequency(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TickFrequency(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->put_TickFrequency(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::TickPlacement() const
    {
        winrt::Windows::UI::Xaml::Controls::Primitives::TickPlacement value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TickPlacement(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->get_TickPlacement(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::TickPlacement(winrt::Windows::UI::Xaml::Controls::Primitives::TickPlacement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TickPlacement(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->put_TickPlacement(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::Orientation() const
    {
        winrt::Windows::UI::Xaml::Controls::Orientation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::Orientation(winrt::Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IsDirectionReversed() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDirectionReversed(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->get_IsDirectionReversed(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IsDirectionReversed(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsDirectionReversed(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->put_IsDirectionReversed(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IsThumbToolTipEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsThumbToolTipEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->get_IsThumbToolTipEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::IsThumbToolTipEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsThumbToolTipEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->put_IsThumbToolTipEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::ThumbToolTipValueConverter() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ThumbToolTipValueConverter(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->get_ThumbToolTipValueConverter(&value));
        }
        return winrt::Windows::UI::Xaml::Data::IValueConverter{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider<D>::ThumbToolTipValueConverter(winrt::Windows::UI::Xaml::Data::IValueConverter const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ThumbToolTipValueConverter(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider>**)this;
            check_hresult(_winrt_abi_type->put_ThumbToolTipValueConverter(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider2<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider2>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider2<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider2>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider2<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISlider2<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISlider2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISlider2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISlider2>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::Slider{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::IntermediateValueProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IntermediateValueProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)this;
            check_hresult(_winrt_abi_type->get_IntermediateValueProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::StepFrequencyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StepFrequencyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)this;
            check_hresult(_winrt_abi_type->get_StepFrequencyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::SnapsToProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SnapsToProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)this;
            check_hresult(_winrt_abi_type->get_SnapsToProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::TickFrequencyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TickFrequencyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)this;
            check_hresult(_winrt_abi_type->get_TickFrequencyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::TickPlacementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TickPlacementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)this;
            check_hresult(_winrt_abi_type->get_TickPlacementProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::IsDirectionReversedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDirectionReversedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsDirectionReversedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::IsThumbToolTipEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsThumbToolTipEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsThumbToolTipEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics<D>::ThumbToolTipValueConverterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ThumbToolTipValueConverterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics>**)this;
            check_hresult(_winrt_abi_type->get_ThumbToolTipValueConverterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics2<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISliderStatics2<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISliderStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISliderStatics2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Flyout() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Flyout(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)this;
            check_hresult(_winrt_abi_type->get_Flyout(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Flyout(winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Flyout(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)this;
            check_hresult(_winrt_abi_type->put_Flyout(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Command() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Command(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)this;
            check_hresult(_winrt_abi_type->get_Command(&value));
        }
        return winrt::Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Command(winrt::Windows::UI::Xaml::Input::ICommand const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Command(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)this;
            check_hresult(_winrt_abi_type->put_Command(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::CommandParameter() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandParameter(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)this;
            check_hresult(_winrt_abi_type->get_CommandParameter(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::CommandParameter(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CommandParameter(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)this;
            check_hresult(_winrt_abi_type->put_CommandParameter(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Click(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitButton, winrt::Windows::UI::Xaml::Controls::SplitButtonClickEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Click(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)this;
            check_hresult(_winrt_abi_type->add_Click(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Click(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitButton, winrt::Windows::UI::Xaml::Controls::SplitButtonClickEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Click_revoker>(this, Click(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButton<D>::Click(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Click(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButton>**)this;
            _winrt_abi_type->remove_Click(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButtonAutomationPeerFactory<D>::CreateInstance(winrt::Windows::UI::Xaml::Controls::SplitButton const& owner, winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&owner), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&owner), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SplitButtonAutomationPeer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SplitButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButtonStatics<D>::FlyoutProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FlyoutProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_FlyoutProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButtonStatics<D>::CommandProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_CommandProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitButtonStatics<D>::CommandParameterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandParameterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics>**)this;
            check_hresult(_winrt_abi_type->get_CommandParameterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::Content() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::Content(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::Pane() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Pane(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->get_Pane(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::Pane(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Pane(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->put_Pane(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::IsPaneOpen() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPaneOpen(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->get_IsPaneOpen(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::IsPaneOpen(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsPaneOpen(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->put_IsPaneOpen(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::OpenPaneLength() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OpenPaneLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->get_OpenPaneLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::OpenPaneLength(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OpenPaneLength(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->put_OpenPaneLength(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::CompactPaneLength() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompactPaneLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->get_CompactPaneLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::CompactPaneLength(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CompactPaneLength(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->put_CompactPaneLength(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PanePlacement() const
    {
        winrt::Windows::UI::Xaml::Controls::SplitViewPanePlacement value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PanePlacement(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->get_PanePlacement(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PanePlacement(winrt::Windows::UI::Xaml::Controls::SplitViewPanePlacement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PanePlacement(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->put_PanePlacement(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::DisplayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::SplitViewDisplayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->get_DisplayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::DisplayMode(winrt::Windows::UI::Xaml::Controls::SplitViewDisplayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DisplayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->put_DisplayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::SplitViewTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneBackground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneBackground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->get_PaneBackground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneBackground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PaneBackground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->put_PaneBackground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosing(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PaneClosing(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->add_PaneClosing(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosing(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PaneClosing_revoker>(this, PaneClosing(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosing(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PaneClosing(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            _winrt_abi_type->remove_PaneClosing(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosed(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PaneClosed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            check_hresult(_winrt_abi_type->add_PaneClosed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneClosed_revoker>(this, PaneClosed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView<D>::PaneClosed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PaneClosed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView>**)this;
            _winrt_abi_type->remove_PaneClosed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView2<D>::LightDismissOverlayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView2>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView2<D>::LightDismissOverlayMode(winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView2>**)this;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpening(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PaneOpening(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView3>**)this;
            check_hresult(_winrt_abi_type->add_PaneOpening(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpening(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneOpening_revoker>(this, PaneOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpening(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PaneOpening(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView3>**)this;
            _winrt_abi_type->remove_PaneOpening(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpened(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PaneOpened(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView3>**)this;
            check_hresult(_winrt_abi_type->add_PaneOpened(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpened(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, PaneOpened_revoker>(this, PaneOpened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitView3<D>::PaneOpened(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PaneOpened(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitView3>**)this;
            _winrt_abi_type->remove_PaneOpened(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SplitView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewPaneClosingEventArgs<D>::Cancel() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewPaneClosingEventArgs<D>::Cancel(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::ContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::PaneProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaneProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::IsPaneOpenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsPaneOpenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsPaneOpenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::OpenPaneLengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OpenPaneLengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_OpenPaneLengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::CompactPaneLengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompactPaneLengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_CompactPaneLengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::PanePlacementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PanePlacementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_PanePlacementProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::DisplayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DisplayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_DisplayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::TemplateSettingsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettingsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettingsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics<D>::PaneBackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaneBackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaneBackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISplitViewStatics2<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel<D>::AreScrollSnapPointsRegular() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreScrollSnapPointsRegular(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_AreScrollSnapPointsRegular(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel<D>::AreScrollSnapPointsRegular(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AreScrollSnapPointsRegular(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel>**)this;
            check_hresult(_winrt_abi_type->put_AreScrollSnapPointsRegular(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel<D>::Orientation() const
    {
        winrt::Windows::UI::Xaml::Controls::Orientation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel<D>::Orientation(winrt::Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel>**)this;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)this;
            check_hresult(_winrt_abi_type->put_BorderBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderThickness() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)this;
            check_hresult(_winrt_abi_type->get_BorderThickness(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::BorderThickness(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)this;
            check_hresult(_winrt_abi_type->put_BorderThickness(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::CornerRadius() const
    {
        winrt::Windows::UI::Xaml::CornerRadius value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadius(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::CornerRadius(winrt::Windows::UI::Xaml::CornerRadius const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)this;
            check_hresult(_winrt_abi_type->put_CornerRadius(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::Padding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)this;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel2<D>::Padding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel2>**)this;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel4<D>::Spacing() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Spacing(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel4>**)this;
            check_hresult(_winrt_abi_type->get_Spacing(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel4<D>::Spacing(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Spacing(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel4>**)this;
            check_hresult(_winrt_abi_type->put_Spacing(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel5<D>::BackgroundSizing() const
    {
        winrt::Windows::UI::Xaml::Controls::BackgroundSizing value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel5>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizing(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanel5<D>::BackgroundSizing(winrt::Windows::UI::Xaml::Controls::BackgroundSizing const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanel5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanel5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanel5>**)this;
            check_hresult(_winrt_abi_type->put_BackgroundSizing(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanelFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanelFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::StackPanel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics<D>::AreScrollSnapPointsRegularProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreScrollSnapPointsRegularProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AreScrollSnapPointsRegularProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::BorderBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>**)this;
            check_hresult(_winrt_abi_type->get_BorderBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::BorderThicknessProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>**)this;
            check_hresult(_winrt_abi_type->get_BorderThicknessProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::CornerRadiusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CornerRadiusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics2<D>::PaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics4<D>::SpacingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SpacingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics4>**)this;
            check_hresult(_winrt_abi_type->get_SpacingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStackPanelStatics5<D>::BackgroundSizingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics5>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundSizingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStyleSelector<D>::SelectStyle(winrt::Windows::Foundation::IInspectable const& item, winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStyleSelector>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStyleSelector, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStyleSelector>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectStyle(*(void**)(&item), *(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStyleSelector>**)this;
            check_hresult(_winrt_abi_type->SelectStyle(*(void**)(&item), *(void**)(&container), &result));
        }
        return winrt::Windows::UI::Xaml::Style{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStyleSelectorFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStyleSelectorFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStyleSelectorFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStyleSelectorFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStyleSelectorFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::StyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IStyleSelectorOverrides<D>::SelectStyleCore(winrt::Windows::Foundation::IInspectable const& item, winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectStyleCore(*(void**)(&item), *(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides>**)this;
            check_hresult(_winrt_abi_type->SelectStyleCore(*(void**)(&item), *(void**)(&container), &result));
        }
        return winrt::Windows::UI::Xaml::Style{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainBackgroundPanel2<D>::CreateCoreIndependentInputSource(winrt::Windows::UI::Core::CoreInputDeviceTypes const& deviceTypes) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateCoreIndependentInputSource(static_cast<uint32_t>(deviceTypes), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2>**)this;
            check_hresult(_winrt_abi_type->CreateCoreIndependentInputSource(static_cast<uint32_t>(deviceTypes), &result));
        }
        return winrt::Windows::UI::Core::CoreIndependentInputSource{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainBackgroundPanelFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SwapChainBackgroundPanel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleX() const
    {
        float value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompositionScaleX(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>**)this;
            check_hresult(_winrt_abi_type->get_CompositionScaleX(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleY() const
    {
        float value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompositionScaleY(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>**)this;
            check_hresult(_winrt_abi_type->get_CompositionScaleY(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SwapChainPanel, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CompositionScaleChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>**)this;
            check_hresult(_winrt_abi_type->add_CompositionScaleChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SwapChainPanel, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, CompositionScaleChanged_revoker>(this, CompositionScaleChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CompositionScaleChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CompositionScaleChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>**)this;
            _winrt_abi_type->remove_CompositionScaleChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanel<D>::CreateCoreIndependentInputSource(winrt::Windows::UI::Core::CoreInputDeviceTypes const& deviceTypes) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateCoreIndependentInputSource(static_cast<uint32_t>(deviceTypes), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>**)this;
            check_hresult(_winrt_abi_type->CreateCoreIndependentInputSource(static_cast<uint32_t>(deviceTypes), &result));
        }
        return winrt::Windows::UI::Core::CoreIndependentInputSource{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanelFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanelFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SwapChainPanel{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanelStatics<D>::CompositionScaleXProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompositionScaleXProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_CompositionScaleXProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwapChainPanelStatics<D>::CompositionScaleYProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CompositionScaleYProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_CompositionScaleYProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::LeftItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)this;
            check_hresult(_winrt_abi_type->get_LeftItems(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::SwipeItems{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::LeftItems(winrt::Windows::UI::Xaml::Controls::SwipeItems const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LeftItems(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)this;
            check_hresult(_winrt_abi_type->put_LeftItems(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::RightItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RightItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)this;
            check_hresult(_winrt_abi_type->get_RightItems(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::SwipeItems{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::RightItems(winrt::Windows::UI::Xaml::Controls::SwipeItems const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_RightItems(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)this;
            check_hresult(_winrt_abi_type->put_RightItems(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::TopItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)this;
            check_hresult(_winrt_abi_type->get_TopItems(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::SwipeItems{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::TopItems(winrt::Windows::UI::Xaml::Controls::SwipeItems const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TopItems(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)this;
            check_hresult(_winrt_abi_type->put_TopItems(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::BottomItems() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BottomItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)this;
            check_hresult(_winrt_abi_type->get_BottomItems(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::SwipeItems{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::BottomItems(winrt::Windows::UI::Xaml::Controls::SwipeItems const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BottomItems(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)this;
            check_hresult(_winrt_abi_type->put_BottomItems(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControl<D>::Close() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Close());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControl>**)this;
            check_hresult(_winrt_abi_type->Close());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControlFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControlFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControlFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControlFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControlFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SwipeControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::LeftItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LeftItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_LeftItemsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::RightItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RightItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_RightItemsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::TopItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TopItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_TopItemsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeControlStatics<D>::BottomItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BottomItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_BottomItemsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Text() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Text(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::IconSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IconSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->get_IconSource(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::IconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::IconSource(winrt::Windows::UI::Xaml::Controls::IconSource const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IconSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->put_IconSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Background() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Background(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->get_Background(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Background(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Background(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->put_Background(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Foreground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Foreground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Command() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Command(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->get_Command(&value));
        }
        return winrt::Windows::UI::Xaml::Input::ICommand{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Command(winrt::Windows::UI::Xaml::Input::ICommand const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Command(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->put_Command(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::CommandParameter() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandParameter(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->get_CommandParameter(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::CommandParameter(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CommandParameter(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->put_CommandParameter(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::BehaviorOnInvoked() const
    {
        winrt::Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BehaviorOnInvoked(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->get_BehaviorOnInvoked(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::BehaviorOnInvoked(winrt::Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_BehaviorOnInvoked(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->put_BehaviorOnInvoked(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Invoked(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SwipeItem, winrt::Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Invoked(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            check_hresult(_winrt_abi_type->add_Invoked(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Invoked(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SwipeItem, winrt::Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Invoked_revoker>(this, Invoked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItem<D>::Invoked(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Invoked(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItem>**)this;
            _winrt_abi_type->remove_Invoked(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SwipeItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemInvokedEventArgs<D>::SwipeControl() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SwipeControl(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_SwipeControl(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::SwipeControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::IconSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IconSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_IconSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::TextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::BackgroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BackgroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_BackgroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::ForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::CommandProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_CommandProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::CommandParameterProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CommandParameterProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_CommandParameterProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemStatics<D>::BehaviorOnInvokedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BehaviorOnInvokedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_BehaviorOnInvokedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItems<D>::Mode() const
    {
        winrt::Windows::UI::Xaml::Controls::SwipeMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItems>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItems, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItems>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Mode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItems>**)this;
            check_hresult(_winrt_abi_type->get_Mode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItems<D>::Mode(winrt::Windows::UI::Xaml::Controls::SwipeMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItems>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItems, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItems>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Mode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItems>**)this;
            check_hresult(_winrt_abi_type->put_Mode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemsFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemsFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItemsFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemsFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemsFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SwipeItems{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISwipeItemsStatics<D>::ModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISwipeItemsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISwipeItemsStatics>**)this;
            check_hresult(_winrt_abi_type->get_ModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIcon<D>::Symbol() const
    {
        winrt::Windows::UI::Xaml::Controls::Symbol value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISymbolIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISymbolIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Symbol(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIcon>**)this;
            check_hresult(_winrt_abi_type->get_Symbol(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIcon<D>::Symbol(winrt::Windows::UI::Xaml::Controls::Symbol const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISymbolIcon>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISymbolIcon, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIcon>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Symbol(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIcon>**)this;
            check_hresult(_winrt_abi_type->put_Symbol(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconFactory<D>::CreateInstanceWithSymbol(winrt::Windows::UI::Xaml::Controls::Symbol const& symbol) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISymbolIconFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstanceWithSymbol(static_cast<int32_t>(symbol), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstanceWithSymbol(static_cast<int32_t>(symbol), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SymbolIcon{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconSource<D>::Symbol() const
    {
        winrt::Windows::UI::Xaml::Controls::Symbol value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISymbolIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Symbol(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconSource>**)this;
            check_hresult(_winrt_abi_type->get_Symbol(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconSource<D>::Symbol(winrt::Windows::UI::Xaml::Controls::Symbol const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconSource>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISymbolIconSource, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconSource>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Symbol(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconSource>**)this;
            check_hresult(_winrt_abi_type->put_Symbol(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconSourceFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::SymbolIconSource{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconSourceStatics<D>::SymbolProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SymbolProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceStatics>**)this;
            check_hresult(_winrt_abi_type->get_SymbolProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ISymbolIconStatics<D>::SymbolProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ISymbolIconStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SymbolProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ISymbolIconStatics>**)this;
            check_hresult(_winrt_abi_type->get_SymbolProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_FontSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_FontSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontFamily() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_FontFamily(&value));
        }
        return winrt::Windows::UI::Xaml::Media::FontFamily{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontFamily(winrt::Windows::UI::Xaml::Media::FontFamily const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_FontFamily(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontWeight() const
    {
        winrt::Windows::UI::Text::FontWeight value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_FontWeight(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontWeight(winrt::Windows::UI::Text::FontWeight const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_FontWeight(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStyle() const
    {
        winrt::Windows::UI::Text::FontStyle value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_FontStyle(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStyle(winrt::Windows::UI::Text::FontStyle const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_FontStyle(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStretch() const
    {
        winrt::Windows::UI::Text::FontStretch value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStretch(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_FontStretch(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::FontStretch(winrt::Windows::UI::Text::FontStretch const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_FontStretch(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_FontStretch(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::CharacterSpacing() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterSpacing(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_CharacterSpacing(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::CharacterSpacing(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CharacterSpacing(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_CharacterSpacing(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Foreground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_Foreground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Foreground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_Foreground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextWrapping() const
    {
        winrt::Windows::UI::Xaml::TextWrapping value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextWrapping(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_TextWrapping(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextWrapping(winrt::Windows::UI::Xaml::TextWrapping const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextWrapping(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_TextWrapping(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextTrimming() const
    {
        winrt::Windows::UI::Xaml::TextTrimming value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextTrimming(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_TextTrimming(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextTrimming(winrt::Windows::UI::Xaml::TextTrimming const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextTrimming(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_TextTrimming(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextAlignment() const
    {
        winrt::Windows::UI::Xaml::TextAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_TextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::TextAlignment(winrt::Windows::UI::Xaml::TextAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_TextAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Text() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Text(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Inlines() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Inlines(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_Inlines(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::InlineCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Padding() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_Padding(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Padding(winrt::Windows::UI::Xaml::Thickness const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_Padding(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_LineHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineHeight(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LineHeight(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_LineHeight(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineStackingStrategy() const
    {
        winrt::Windows::UI::Xaml::LineStackingStrategy value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineStackingStrategy(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_LineStackingStrategy(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::LineStackingStrategy(winrt::Windows::UI::Xaml::LineStackingStrategy const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LineStackingStrategy(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_LineStackingStrategy(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::IsTextSelectionEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextSelectionEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_IsTextSelectionEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::IsTextSelectionEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTextSelectionEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->put_IsTextSelectionEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectedText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_SelectedText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContentStart() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentStart(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_ContentStart(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContentEnd() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentEnd(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_ContentEnd(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionStart() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionStart(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_SelectionStart(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionEnd() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionEnd(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_SelectionEnd(&value));
        }
        return winrt::Windows::UI::Xaml::Documents::TextPointer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::BaselineOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_BaselineOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->get_BaselineOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening(winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ContextMenuOpening_revoker>(this, ContextMenuOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ContextMenuOpening(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            _winrt_abi_type->remove_ContextMenuOpening(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::SelectAll() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectAll());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->SelectAll());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Select(winrt::Windows::UI::Xaml::Documents::TextPointer const& start, winrt::Windows::UI::Xaml::Documents::TextPointer const& end) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Select(*(void**)(&start), *(void**)(&end)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->Select(*(void**)(&start), *(void**)(&end)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock<D>::Focus(winrt::Windows::UI::Xaml::FocusState const& value) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Focus(static_cast<int32_t>(value), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock>**)this;
            check_hresult(_winrt_abi_type->Focus(static_cast<int32_t>(value), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::SelectionHighlightColor() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColor(&value));
        }
        return winrt::Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::SelectionHighlightColor(winrt::Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColor(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColor(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::MaxLines() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLines(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_MaxLines(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::MaxLines(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxLines(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_MaxLines(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextLineBounds() const
    {
        winrt::Windows::UI::Xaml::TextLineBounds value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextLineBounds(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_TextLineBounds(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextLineBounds(winrt::Windows::UI::Xaml::TextLineBounds const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextLineBounds(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_TextLineBounds(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::OpticalMarginAlignment() const
    {
        winrt::Windows::UI::Xaml::OpticalMarginAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::OpticalMarginAlignment(winrt::Windows::UI::Xaml::OpticalMarginAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OpticalMarginAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_OpticalMarginAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::IsColorFontEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::IsColorFontEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsColorFontEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_IsColorFontEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextReadingOrder() const
    {
        winrt::Windows::UI::Xaml::TextReadingOrder value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextReadingOrder(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->get_TextReadingOrder(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock2<D>::TextReadingOrder(winrt::Windows::UI::Xaml::TextReadingOrder const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextReadingOrder(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock2>**)this;
            check_hresult(_winrt_abi_type->put_TextReadingOrder(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock3<D>::IsTextScaleFactorEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock3>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock3<D>::IsTextScaleFactorEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock3>**)this;
            check_hresult(_winrt_abi_type->put_IsTextScaleFactorEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock4<D>::GetAlphaMask() const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetAlphaMask(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock4>**)this;
            check_hresult(_winrt_abi_type->GetAlphaMask(&result));
        }
        return winrt::Windows::UI::Composition::CompositionBrush{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock5<D>::TextDecorations() const
    {
        winrt::Windows::UI::Text::TextDecorations value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextDecorations(reinterpret_cast<uint32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock5>**)this;
            check_hresult(_winrt_abi_type->get_TextDecorations(reinterpret_cast<uint32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock5<D>::TextDecorations(winrt::Windows::UI::Text::TextDecorations const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextDecorations(static_cast<uint32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock5>**)this;
            check_hresult(_winrt_abi_type->put_TextDecorations(static_cast<uint32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmed() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextTrimmed(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)this;
            check_hresult(_winrt_abi_type->get_IsTextTrimmed(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::HorizontalTextAlignment() const
    {
        winrt::Windows::UI::Xaml::TextAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::HorizontalTextAlignment(winrt::Windows::UI::Xaml::TextAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::TextHighlighters() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextHighlighters(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)this;
            check_hresult(_winrt_abi_type->get_TextHighlighters(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Documents::TextHighlighter>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmedChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBlock, winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_IsTextTrimmedChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)this;
            check_hresult(_winrt_abi_type->add_IsTextTrimmedChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmedChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBlock, winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, IsTextTrimmedChanged_revoker>(this, IsTextTrimmedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock6<D>::IsTextTrimmedChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)&_winrt_casted_result;
            _winrt_abi_type->remove_IsTextTrimmedChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock6>**)this;
            _winrt_abi_type->remove_IsTextTrimmedChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock7<D>::SelectionFlyout() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFlyout(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock7>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFlyout(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock7<D>::SelectionFlyout(winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionFlyout(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock7>**)this;
            check_hresult(_winrt_abi_type->put_SelectionFlyout(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlock7<D>::CopySelectionToClipboard() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlock7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlock7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CopySelectionToClipboard());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlock7>**)this;
            check_hresult(_winrt_abi_type->CopySelectionToClipboard());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontFamilyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontFamilyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontWeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontWeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::FontStretchProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_FontStretchProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_FontStretchProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::CharacterSpacingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterSpacingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_CharacterSpacingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::ForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_ForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextWrappingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextWrappingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextWrappingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextTrimmingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextTrimmingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextTrimmingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::TextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::PaddingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_PaddingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::LineHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_LineHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::LineStackingStrategyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LineStackingStrategyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_LineStackingStrategyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::IsTextSelectionEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextSelectionEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsTextSelectionEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics<D>::SelectedTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectedTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::SelectionHighlightColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::MaxLinesProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLinesProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_MaxLinesProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::TextLineBoundsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextLineBoundsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TextLineBoundsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::OpticalMarginAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_OpticalMarginAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::IsColorFontEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics2<D>::TextReadingOrderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextReadingOrderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>**)this;
            check_hresult(_winrt_abi_type->get_TextReadingOrderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics3<D>::IsTextScaleFactorEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics3>**)this;
            check_hresult(_winrt_abi_type->get_IsTextScaleFactorEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics5<D>::TextDecorationsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextDecorationsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics5>**)this;
            check_hresult(_winrt_abi_type->get_TextDecorationsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics6<D>::IsTextTrimmedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextTrimmedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6>**)this;
            check_hresult(_winrt_abi_type->get_IsTextTrimmedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics6<D>::HorizontalTextAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBlockStatics7<D>::SelectionFlyoutProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFlyoutProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics7>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFlyoutProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::Text() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_Text(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::Text(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_Text(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectedText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_SelectedText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectedText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_SelectedText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionLength() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_SelectionLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionLength(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionLength(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_SelectionLength(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionStart() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionStart(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_SelectionStart(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionStart(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionStart(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_SelectionStart(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::MaxLength() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_MaxLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::MaxLength(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaxLength(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_MaxLength(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsReadOnly() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsReadOnly(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_IsReadOnly(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsReadOnly(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsReadOnly(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_IsReadOnly(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::AcceptsReturn() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AcceptsReturn(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_AcceptsReturn(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::AcceptsReturn(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AcceptsReturn(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_AcceptsReturn(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextAlignment() const
    {
        winrt::Windows::UI::Xaml::TextAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_TextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextAlignment(winrt::Windows::UI::Xaml::TextAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_TextAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextWrapping() const
    {
        winrt::Windows::UI::Xaml::TextWrapping value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextWrapping(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_TextWrapping(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextWrapping(winrt::Windows::UI::Xaml::TextWrapping const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextWrapping(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_TextWrapping(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsSpellCheckEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSpellCheckEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_IsSpellCheckEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsSpellCheckEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsSpellCheckEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_IsSpellCheckEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsTextPredictionEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextPredictionEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_IsTextPredictionEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::IsTextPredictionEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsTextPredictionEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_IsTextPredictionEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::InputScope() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InputScope(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->get_InputScope(&value));
        }
        return winrt::Windows::UI::Xaml::Input::InputScope{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::InputScope(winrt::Windows::UI::Xaml::Input::InputScope const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_InputScope(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->put_InputScope(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged(winrt::Windows::UI::Xaml::Controls::TextChangedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->add_TextChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::TextChangedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, TextChanged_revoker>(this, TextChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::TextChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            _winrt_abi_type->remove_TextChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->add_SelectionChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanged_revoker>(this, SelectionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectionChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            _winrt_abi_type->remove_SelectionChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening(winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->add_ContextMenuOpening(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ContextMenuOpening_revoker>(this, ContextMenuOpening(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::ContextMenuOpening(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ContextMenuOpening(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            _winrt_abi_type->remove_ContextMenuOpening(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::Select(int32_t start, int32_t length) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Select(start, length));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->Select(start, length));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::SelectAll() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectAll());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->SelectAll());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox<D>::GetRectFromCharacterIndex(int32_t charIndex, bool trailingEdge) const
    {
        winrt::Windows::Foundation::Rect result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetRectFromCharacterIndex(charIndex, trailingEdge, put_abi(result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox>**)this;
            check_hresult(_winrt_abi_type->GetRectFromCharacterIndex(charIndex, trailingEdge, put_abi(result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PlaceholderText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PlaceholderText(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderText(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::SelectionHighlightColor() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColor(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColor(&value));
        }
        return winrt::Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::SelectionHighlightColor(winrt::Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColor(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColor(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocus(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::PreventKeyboardDisplayOnProgrammaticFocus(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->put_PreventKeyboardDisplayOnProgrammaticFocus(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::IsColorFontEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::IsColorFontEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsColorFontEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->put_IsColorFontEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste(winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Paste(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            check_hresult(_winrt_abi_type->add_Paste(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Paste_revoker>(this, Paste(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox2<D>::Paste(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Paste(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox2>**)this;
            _winrt_abi_type->remove_Paste(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionStarted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextCompositionStarted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            check_hresult(_winrt_abi_type->add_TextCompositionStarted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionStarted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionStarted_revoker>(this, TextCompositionStarted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionStarted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextCompositionStarted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            _winrt_abi_type->remove_TextCompositionStarted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextCompositionChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            check_hresult(_winrt_abi_type->add_TextCompositionChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionChanged_revoker>(this, TextCompositionChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextCompositionChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            _winrt_abi_type->remove_TextCompositionChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionEnded(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextCompositionEnded(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            check_hresult(_winrt_abi_type->add_TextCompositionEnded(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionEnded(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextCompositionEnded_revoker>(this, TextCompositionEnded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextCompositionEnded(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextCompositionEnded(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            _winrt_abi_type->remove_TextCompositionEnded(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextReadingOrder() const
    {
        winrt::Windows::UI::Xaml::TextReadingOrder value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextReadingOrder(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            check_hresult(_winrt_abi_type->get_TextReadingOrder(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextReadingOrder(winrt::Windows::UI::Xaml::TextReadingOrder const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TextReadingOrder(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            check_hresult(_winrt_abi_type->put_TextReadingOrder(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::DesiredCandidateWindowAlignment() const
    {
        winrt::Windows::UI::Xaml::Controls::CandidateWindowAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DesiredCandidateWindowAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            check_hresult(_winrt_abi_type->get_DesiredCandidateWindowAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::DesiredCandidateWindowAlignment(winrt::Windows::UI::Xaml::Controls::CandidateWindowAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DesiredCandidateWindowAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            check_hresult(_winrt_abi_type->put_DesiredCandidateWindowAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::CandidateWindowBoundsChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CandidateWindowBoundsChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            check_hresult(_winrt_abi_type->add_CandidateWindowBoundsChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::CandidateWindowBoundsChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CandidateWindowBoundsChanged_revoker>(this, CandidateWindowBoundsChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::CandidateWindowBoundsChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CandidateWindowBoundsChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            _winrt_abi_type->remove_CandidateWindowBoundsChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextChanging(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TextChanging(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            check_hresult(_winrt_abi_type->add_TextChanging(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextChanging(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TextChanging_revoker>(this, TextChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox3<D>::TextChanging(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TextChanging(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox3>**)this;
            _winrt_abi_type->remove_TextChanging(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox4<D>::GetLinguisticAlternativesAsync() const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetLinguisticAlternativesAsync(&operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox4>**)this;
            check_hresult(_winrt_abi_type->GetLinguisticAlternativesAsync(&operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::Collections::IVectorView<hstring>>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox5<D>::SelectionHighlightColorWhenNotFocused() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorWhenNotFocused(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox5>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorWhenNotFocused(&value));
        }
        return winrt::Windows::UI::Xaml::Media::SolidColorBrush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox5<D>::SelectionHighlightColorWhenNotFocused(winrt::Windows::UI::Xaml::Media::SolidColorBrush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColorWhenNotFocused(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox5>**)this;
            check_hresult(_winrt_abi_type->put_SelectionHighlightColorWhenNotFocused(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::HorizontalTextAlignment() const
    {
        winrt::Windows::UI::Xaml::TextAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::HorizontalTextAlignment(winrt::Windows::UI::Xaml::TextAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalTextAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CharacterCasing() const
    {
        winrt::Windows::UI::Xaml::Controls::CharacterCasing value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterCasing(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            check_hresult(_winrt_abi_type->get_CharacterCasing(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CharacterCasing(winrt::Windows::UI::Xaml::Controls::CharacterCasing const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CharacterCasing(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            check_hresult(_winrt_abi_type->put_CharacterCasing(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::PlaceholderForeground() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderForeground(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderForeground(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::PlaceholderForeground(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlaceholderForeground(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            check_hresult(_winrt_abi_type->put_PlaceholderForeground(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CopyingToClipboard(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CopyingToClipboard(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            check_hresult(_winrt_abi_type->add_CopyingToClipboard(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CopyingToClipboard(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CopyingToClipboard_revoker>(this, CopyingToClipboard(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CopyingToClipboard(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CopyingToClipboard(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            _winrt_abi_type->remove_CopyingToClipboard(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CuttingToClipboard(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CuttingToClipboard(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            check_hresult(_winrt_abi_type->add_CuttingToClipboard(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CuttingToClipboard(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, CuttingToClipboard_revoker>(this, CuttingToClipboard(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::CuttingToClipboard(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CuttingToClipboard(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            _winrt_abi_type->remove_CuttingToClipboard(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::BeforeTextChanging(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_BeforeTextChanging(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            check_hresult(_winrt_abi_type->add_BeforeTextChanging(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::BeforeTextChanging(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, BeforeTextChanging_revoker>(this, BeforeTextChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox6<D>::BeforeTextChanging(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)&_winrt_casted_result;
            _winrt_abi_type->remove_BeforeTextChanging(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox6>**)this;
            _winrt_abi_type->remove_BeforeTextChanging(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox7<D>::HandwritingView() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HandwritingView(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox7>**)this;
            check_hresult(_winrt_abi_type->get_HandwritingView(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::HandwritingView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox7<D>::HandwritingView(winrt::Windows::UI::Xaml::Controls::HandwritingView const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HandwritingView(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox7>**)this;
            check_hresult(_winrt_abi_type->put_HandwritingView(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox7<D>::IsHandwritingViewEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHandwritingViewEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox7>**)this;
            check_hresult(_winrt_abi_type->get_IsHandwritingViewEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox7<D>::IsHandwritingViewEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsHandwritingViewEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox7>**)this;
            check_hresult(_winrt_abi_type->put_IsHandwritingViewEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CanPasteClipboardContent() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanPasteClipboardContent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->get_CanPasteClipboardContent(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CanUndo() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanUndo(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->get_CanUndo(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CanRedo() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanRedo(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->get_CanRedo(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionFlyout() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFlyout(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFlyout(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionFlyout(winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionFlyout(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->put_SelectionFlyout(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::ProofingMenuFlyout() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ProofingMenuFlyout(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->get_ProofingMenuFlyout(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Description() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->get_Description(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Description(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->put_Description(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionChanging(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextBoxSelectionChangingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SelectionChanging(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->add_SelectionChanging(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionChanging(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextBoxSelectionChangingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectionChanging_revoker>(this, SelectionChanging(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::SelectionChanging(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SelectionChanging(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            _winrt_abi_type->remove_SelectionChanging(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Undo() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Undo());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->Undo());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::Redo() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Redo());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->Redo());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::PasteFromClipboard() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->PasteFromClipboard());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->PasteFromClipboard());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CopySelectionToClipboard() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CopySelectionToClipboard());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->CopySelectionToClipboard());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::CutSelectionToClipboard() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CutSelectionToClipboard());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->CutSelectionToClipboard());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBox8<D>::ClearUndoRedoHistory() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBox8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ClearUndoRedoHistory());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBox8>**)this;
            check_hresult(_winrt_abi_type->ClearUndoRedoHistory());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxBeforeTextChangingEventArgs<D>::NewText() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NewText(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_NewText(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxBeforeTextChangingEventArgs<D>::Cancel() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxBeforeTextChangingEventArgs<D>::Cancel(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::TextBox{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::SelectionStart() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionStart(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_SelectionStart(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::SelectionLength() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionLength(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_SelectionLength(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::Cancel() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxSelectionChangingEventArgs<D>::Cancel(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::TextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::MaxLengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaxLengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaxLengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::IsReadOnlyProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsReadOnlyProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsReadOnlyProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::AcceptsReturnProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AcceptsReturnProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_AcceptsReturnProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::TextAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::TextWrappingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextWrappingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_TextWrappingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::IsSpellCheckEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSpellCheckEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsSpellCheckEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::IsTextPredictionEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsTextPredictionEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsTextPredictionEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics<D>::InputScopeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InputScopeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>**)this;
            check_hresult(_winrt_abi_type->get_InputScopeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::PlaceholderTextProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderTextProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::SelectionHighlightColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::PreventKeyboardDisplayOnProgrammaticFocusProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PreventKeyboardDisplayOnProgrammaticFocusProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics2<D>::IsColorFontEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsColorFontEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics3<D>::DesiredCandidateWindowAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DesiredCandidateWindowAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3>**)this;
            check_hresult(_winrt_abi_type->get_DesiredCandidateWindowAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics3<D>::TextReadingOrderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TextReadingOrderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3>**)this;
            check_hresult(_winrt_abi_type->get_TextReadingOrderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics5<D>::SelectionHighlightColorWhenNotFocusedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorWhenNotFocusedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics5>**)this;
            check_hresult(_winrt_abi_type->get_SelectionHighlightColorWhenNotFocusedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics6<D>::HorizontalTextAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalTextAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics6<D>::CharacterCasingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CharacterCasingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6>**)this;
            check_hresult(_winrt_abi_type->get_CharacterCasingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics6<D>::PlaceholderForegroundProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlaceholderForegroundProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6>**)this;
            check_hresult(_winrt_abi_type->get_PlaceholderForegroundProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics7<D>::HandwritingViewProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HandwritingViewProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7>**)this;
            check_hresult(_winrt_abi_type->get_HandwritingViewProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics7<D>::IsHandwritingViewEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsHandwritingViewEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7>**)this;
            check_hresult(_winrt_abi_type->get_IsHandwritingViewEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::CanPasteClipboardContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanPasteClipboardContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)this;
            check_hresult(_winrt_abi_type->get_CanPasteClipboardContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::CanUndoProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanUndoProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)this;
            check_hresult(_winrt_abi_type->get_CanUndoProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::CanRedoProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanRedoProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)this;
            check_hresult(_winrt_abi_type->get_CanRedoProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::SelectionFlyoutProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionFlyoutProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)this;
            check_hresult(_winrt_abi_type->get_SelectionFlyoutProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::ProofingMenuFlyoutProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ProofingMenuFlyoutProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)this;
            check_hresult(_winrt_abi_type->get_ProofingMenuFlyoutProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxStatics8<D>::DescriptionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>**)this;
            check_hresult(_winrt_abi_type->get_DescriptionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextBoxTextChangingEventArgs2<D>::IsContentChanging() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsContentChanging(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2>**)this;
            check_hresult(_winrt_abi_type->get_IsContentChanging(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCommandBarFlyoutFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::TextCommandBarFlyout{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionChangedEventArgs<D>::StartIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StartIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_StartIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionChangedEventArgs<D>::Length() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Length(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Length(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionEndedEventArgs<D>::StartIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StartIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_StartIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionEndedEventArgs<D>::Length() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Length(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Length(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionStartedEventArgs<D>::StartIndex() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StartIndex(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_StartIndex(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextCompositionStartedEventArgs<D>::Length() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Length(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Length(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlCopyingToClipboardEventArgs<D>::Handled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlCopyingToClipboardEventArgs<D>::Handled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlCuttingToClipboardEventArgs<D>::Handled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlCuttingToClipboardEventArgs<D>::Handled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlPasteEventArgs<D>::Handled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITextControlPasteEventArgs<D>::Handled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickedEventArgs<D>::OldTime() const
    {
        winrt::Windows::Foundation::TimeSpan value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OldTime(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_OldTime(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickedEventArgs<D>::NewTime() const
    {
        winrt::Windows::Foundation::TimeSpan value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NewTime(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_NewTime(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::ClockIdentifier() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ClockIdentifier(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            check_hresult(_winrt_abi_type->get_ClockIdentifier(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::ClockIdentifier(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ClockIdentifier(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            check_hresult(_winrt_abi_type->put_ClockIdentifier(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::MinuteIncrement() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinuteIncrement(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            check_hresult(_winrt_abi_type->get_MinuteIncrement(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::MinuteIncrement(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinuteIncrement(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            check_hresult(_winrt_abi_type->put_MinuteIncrement(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Time() const
    {
        winrt::Windows::Foundation::TimeSpan value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Time(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            check_hresult(_winrt_abi_type->get_Time(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::Time(winrt::Windows::Foundation::TimeSpan const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Time(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            check_hresult(_winrt_abi_type->put_Time(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::TimeChanged(winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TimeChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            check_hresult(_winrt_abi_type->add_TimeChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::TimeChanged(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TimeChanged_revoker>(this, TimeChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker<D>::TimeChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TimeChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker>**)this;
            _winrt_abi_type->remove_TimeChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker2<D>::LightDismissOverlayMode() const
    {
        winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker2>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker2<D>::LightDismissOverlayMode(winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker2>**)this;
            check_hresult(_winrt_abi_type->put_LightDismissOverlayMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTime() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedTime(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker3>**)this;
            check_hresult(_winrt_abi_type->get_SelectedTime(&value));
        }
        return winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTime(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan> const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectedTime(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker3>**)this;
            check_hresult(_winrt_abi_type->put_SelectedTime(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTimeChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TimePicker, winrt::Windows::UI::Xaml::Controls::TimePickerSelectedValueChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SelectedTimeChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker3>**)this;
            check_hresult(_winrt_abi_type->add_SelectedTimeChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTimeChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TimePicker, winrt::Windows::UI::Xaml::Controls::TimePickerSelectedValueChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SelectedTimeChanged_revoker>(this, SelectedTimeChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePicker3<D>::SelectedTimeChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePicker3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePicker3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SelectedTimeChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePicker3>**)this;
            _winrt_abi_type->remove_SelectedTimeChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::TimePicker{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::ClockIdentifier() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ClockIdentifier(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_ClockIdentifier(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::ClockIdentifier(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ClockIdentifier(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_ClockIdentifier(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::Time() const
    {
        winrt::Windows::Foundation::TimeSpan value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Time(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_Time(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::Time(winrt::Windows::Foundation::TimeSpan const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Time(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_Time(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::MinuteIncrement() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinuteIncrement(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->get_MinuteIncrement(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::MinuteIncrement(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinuteIncrement(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->put_MinuteIncrement(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::TimePicked(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TimePickerFlyout, winrt::Windows::UI::Xaml::Controls::TimePickedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_TimePicked(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->add_TimePicked(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::TimePicked(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TimePickerFlyout, winrt::Windows::UI::Xaml::Controls::TimePickedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, TimePicked_revoker>(this, TimePicked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::TimePicked(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)&_winrt_casted_result;
            _winrt_abi_type->remove_TimePicked(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)this;
            _winrt_abi_type->remove_TimePicked(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyout<D>::ShowAtAsync(winrt::Windows::UI::Xaml::FrameworkElement const& target) const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ShowAtAsync(*(void**)(&target), &operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>**)this;
            check_hresult(_winrt_abi_type->ShowAtAsync(*(void**)(&target), &operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan>>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutPresenter2<D>::IsDefaultShadowEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2>**)this;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutPresenter2<D>::IsDefaultShadowEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsDefaultShadowEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2>**)this;
            check_hresult(_winrt_abi_type->put_IsDefaultShadowEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutPresenterStatics2<D>::IsDefaultShadowEnabledProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabledProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2>**)this;
            check_hresult(_winrt_abi_type->get_IsDefaultShadowEnabledProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutStatics<D>::ClockIdentifierProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ClockIdentifierProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_ClockIdentifierProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutStatics<D>::TimeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TimeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_TimeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerFlyoutStatics<D>::MinuteIncrementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinuteIncrementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinuteIncrementProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerSelectedValueChangedEventArgs<D>::OldTime() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OldTime(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_OldTime(&value));
        }
        return winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerSelectedValueChangedEventArgs<D>::NewTime() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NewTime(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_NewTime(&value));
        }
        return winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::ClockIdentifierProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ClockIdentifierProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_ClockIdentifierProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::MinuteIncrementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinuteIncrementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinuteIncrementProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics<D>::TimeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TimeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>**)this;
            check_hresult(_winrt_abi_type->get_TimeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics2<D>::LightDismissOverlayModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics2>**)this;
            check_hresult(_winrt_abi_type->get_LightDismissOverlayModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerStatics3<D>::SelectedTimeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedTimeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics3>**)this;
            check_hresult(_winrt_abi_type->get_SelectedTimeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerValueChangedEventArgs<D>::OldTime() const
    {
        winrt::Windows::Foundation::TimeSpan value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OldTime(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_OldTime(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITimePickerValueChangedEventArgs<D>::NewTime() const
    {
        winrt::Windows::Foundation::TimeSpan value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_NewTime(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_NewTime(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItem<D>::IsChecked() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsChecked(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->get_IsChecked(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItem<D>::IsChecked(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsChecked(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem>**)this;
            check_hresult(_winrt_abi_type->put_IsChecked(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleMenuFlyoutItemStatics<D>::IsCheckedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsCheckedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsCheckedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsChecked() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsChecked(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>**)this;
            check_hresult(_winrt_abi_type->get_IsChecked(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsChecked(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsChecked(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>**)this;
            check_hresult(_winrt_abi_type->put_IsChecked(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsCheckedChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ToggleSplitButton, winrt::Windows::UI::Xaml::Controls::ToggleSplitButtonIsCheckedChangedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_IsCheckedChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>**)this;
            check_hresult(_winrt_abi_type->add_IsCheckedChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsCheckedChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ToggleSplitButton, winrt::Windows::UI::Xaml::Controls::ToggleSplitButtonIsCheckedChangedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, IsCheckedChanged_revoker>(this, IsCheckedChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButton<D>::IsCheckedChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>**)&_winrt_casted_result;
            _winrt_abi_type->remove_IsCheckedChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>**)this;
            _winrt_abi_type->remove_IsCheckedChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButtonAutomationPeerFactory<D>::CreateInstance(winrt::Windows::UI::Xaml::Controls::ToggleSplitButton const& owner, winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&owner), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&owner), *(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ToggleSplitButtonAutomationPeer{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSplitButtonFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ToggleSplitButton{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::IsOn() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOn(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->get_IsOn(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::IsOn(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsOn(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->put_IsOn(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Header() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->get_Header(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Header(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->put_Header(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::HeaderTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::HeaderTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->put_HeaderTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContent() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OnContent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->get_OnContent(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContent(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OnContent(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->put_OnContent(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContentTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OnContentTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->get_OnContentTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OnContentTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OnContentTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->put_OnContentTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContent() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OffContent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->get_OffContent(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContent(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OffContent(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->put_OffContent(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContentTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OffContentTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->get_OffContentTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::OffContentTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_OffContentTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->put_OffContentTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::ToggleSwitchTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Toggled(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            check_hresult(_winrt_abi_type->add_Toggled(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Toggled_revoker>(this, Toggled(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitch<D>::Toggled(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitch, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Toggled(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitch>**)this;
            _winrt_abi_type->remove_Toggled(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnToggled() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnToggled());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>**)this;
            check_hresult(_winrt_abi_type->OnToggled());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnOnContentChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnOnContentChanged(*(void**)(&oldContent), *(void**)(&newContent)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>**)this;
            check_hresult(_winrt_abi_type->OnOnContentChanged(*(void**)(&oldContent), *(void**)(&newContent)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnOffContentChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnOffContentChanged(*(void**)(&oldContent), *(void**)(&newContent)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>**)this;
            check_hresult(_winrt_abi_type->OnOffContentChanged(*(void**)(&oldContent), *(void**)(&newContent)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchOverrides<D>::OnHeaderChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnHeaderChanged(*(void**)(&oldContent), *(void**)(&newContent)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>**)this;
            check_hresult(_winrt_abi_type->OnHeaderChanged(*(void**)(&oldContent), *(void**)(&newContent)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::IsOnProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOnProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsOnProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::HeaderProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::HeaderTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)this;
            check_hresult(_winrt_abi_type->get_HeaderTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OnContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OnContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)this;
            check_hresult(_winrt_abi_type->get_OnContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OnContentTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OnContentTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)this;
            check_hresult(_winrt_abi_type->get_OnContentTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OffContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OffContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)this;
            check_hresult(_winrt_abi_type->get_OffContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToggleSwitchStatics<D>::OffContentTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OffContentTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>**)this;
            check_hresult(_winrt_abi_type->get_OffContentTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::HorizontalOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::HorizontalOffset(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalOffset(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalOffset(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::IsOpen() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOpen(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->get_IsOpen(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::IsOpen(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsOpen(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->put_IsOpen(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Placement() const
    {
        winrt::Windows::UI::Xaml::Controls::Primitives::PlacementMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Placement(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->get_Placement(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Placement(winrt::Windows::UI::Xaml::Controls::Primitives::PlacementMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Placement(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->put_Placement(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::PlacementTarget() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlacementTarget(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->get_PlacementTarget(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::PlacementTarget(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlacementTarget(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->put_PlacementTarget(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::VerticalOffset() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalOffset(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->get_VerticalOffset(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::VerticalOffset(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalOffset(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->put_VerticalOffset(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::TemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->get_TemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::Primitives::ToolTipTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Closed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->add_Closed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Closed_revoker>(this, Closed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Closed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Closed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            _winrt_abi_type->remove_Closed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened(winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Opened(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            check_hresult(_winrt_abi_type->add_Opened(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened(auto_revoke_t, winrt::Windows::UI::Xaml::RoutedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, Opened_revoker>(this, Opened(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip<D>::Opened(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Opened(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip>**)this;
            _winrt_abi_type->remove_Opened(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip2<D>::PlacementRect() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlacementRect(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip2>**)this;
            check_hresult(_winrt_abi_type->get_PlacementRect(&value));
        }
        return winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::Rect>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTip2<D>::PlacementRect(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::Rect> const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTip2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTip2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PlacementRect(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTip2>**)this;
            check_hresult(_winrt_abi_type->put_PlacementRect(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::ToolTip{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::PlacementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlacementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlacementProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::GetPlacement(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        winrt::Windows::UI::Xaml::Controls::Primitives::PlacementMode result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetPlacement(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)this;
            check_hresult(_winrt_abi_type->GetPlacement(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::SetPlacement(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::Primitives::PlacementMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetPlacement(*(void**)(&element), static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)this;
            check_hresult(_winrt_abi_type->SetPlacement(*(void**)(&element), static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::PlacementTargetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlacementTargetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlacementTargetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::GetPlacementTarget(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetPlacementTarget(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)this;
            check_hresult(_winrt_abi_type->GetPlacementTarget(*(void**)(&element), &result));
        }
        return winrt::Windows::UI::Xaml::UIElement{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::SetPlacementTarget(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetPlacementTarget(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)this;
            check_hresult(_winrt_abi_type->SetPlacementTarget(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::ToolTipProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ToolTipProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)this;
            check_hresult(_winrt_abi_type->get_ToolTipProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::GetToolTip(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetToolTip(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)this;
            check_hresult(_winrt_abi_type->GetToolTip(*(void**)(&element), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipServiceStatics<D>::SetToolTip(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetToolTip(*(void**)(&element), *(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>**)this;
            check_hresult(_winrt_abi_type->SetToolTip(*(void**)(&element), *(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::HorizontalOffsetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalOffsetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalOffsetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::IsOpenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsOpenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsOpenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::PlacementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlacementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlacementProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::PlacementTargetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlacementTargetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics>**)this;
            check_hresult(_winrt_abi_type->get_PlacementTargetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics<D>::VerticalOffsetProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalOffsetProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalOffsetProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IToolTipStatics2<D>::PlacementRectProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IToolTipStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IToolTipStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PlacementRectProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IToolTipStatics2>**)this;
            check_hresult(_winrt_abi_type->get_PlacementRectProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::RootNodes() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RootNodes(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            check_hresult(_winrt_abi_type->get_RootNodes(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::TreeViewNode>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectionMode() const
    {
        winrt::Windows::UI::Xaml::Controls::TreeViewSelectionMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            check_hresult(_winrt_abi_type->get_SelectionMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectionMode(winrt::Windows::UI::Xaml::Controls::TreeViewSelectionMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SelectionMode(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            check_hresult(_winrt_abi_type->put_SelectionMode(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectedNodes() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectedNodes(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            check_hresult(_winrt_abi_type->get_SelectedNodes(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::TreeViewNode>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expand(winrt::Windows::UI::Xaml::Controls::TreeViewNode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Expand(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            check_hresult(_winrt_abi_type->Expand(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapse(winrt::Windows::UI::Xaml::Controls::TreeViewNode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Collapse(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            check_hresult(_winrt_abi_type->Collapse(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::SelectAll() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SelectAll());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            check_hresult(_winrt_abi_type->SelectAll());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::ItemInvoked(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ItemInvoked(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            check_hresult(_winrt_abi_type->add_ItemInvoked(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::ItemInvoked(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ItemInvoked_revoker>(this, ItemInvoked(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::ItemInvoked(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ItemInvoked(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            _winrt_abi_type->remove_ItemInvoked(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expanding(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Expanding(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            check_hresult(_winrt_abi_type->add_Expanding(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expanding(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Expanding_revoker>(this, Expanding(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Expanding(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Expanding(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            _winrt_abi_type->remove_Expanding(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapsed(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_Collapsed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            check_hresult(_winrt_abi_type->add_Collapsed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapsed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, Collapsed_revoker>(this, Collapsed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView<D>::Collapsed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_Collapsed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView>**)this;
            _winrt_abi_type->remove_Collapsed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::NodeFromContainer(winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->NodeFromContainer(*(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->NodeFromContainer(*(void**)(&container), &result));
        }
        return winrt::Windows::UI::Xaml::Controls::TreeViewNode{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ContainerFromNode(winrt::Windows::UI::Xaml::Controls::TreeViewNode const& node) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ContainerFromNode(*(void**)(&node), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->ContainerFromNode(*(void**)(&node), &result));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemFromContainer(winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ItemFromContainer(*(void**)(&container), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->ItemFromContainer(*(void**)(&container), &result));
        }
        return winrt::Windows::Foundation::IInspectable{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ContainerFromItem(winrt::Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ContainerFromItem(*(void**)(&item), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->ContainerFromItem(*(void**)(&item), &result));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanDragItems() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanDragItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->get_CanDragItems(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanDragItems(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CanDragItems(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->put_CanDragItems(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanReorderItems() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanReorderItems(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->get_CanReorderItems(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::CanReorderItems(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CanReorderItems(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->put_CanReorderItems(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplate() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTemplate(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->get_ItemTemplate(&value));
        }
        return winrt::Windows::UI::Xaml::DataTemplate{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplate(winrt::Windows::UI::Xaml::DataTemplate const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemTemplate(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->put_ItemTemplate(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplateSelector() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTemplateSelector(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->get_ItemTemplateSelector(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::DataTemplateSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemTemplateSelector(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemTemplateSelector(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->put_ItemTemplateSelector(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerStyle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerStyle(&value));
        }
        return winrt::Windows::UI::Xaml::Style{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyle(winrt::Windows::UI::Xaml::Style const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemContainerStyle(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->put_ItemContainerStyle(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyleSelector() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleSelector(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleSelector(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::StyleSelector{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerStyleSelector(winrt::Windows::UI::Xaml::Controls::StyleSelector const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemContainerStyleSelector(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->put_ItemContainerStyleSelector(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerTransitions() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerTransitions(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerTransitions(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemContainerTransitions(winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemContainerTransitions(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->put_ItemContainerTransitions(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemsSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->get_ItemsSource(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::ItemsSource(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemsSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->put_ItemsSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsStarting(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsStartingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DragItemsStarting(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->add_DragItemsStarting(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsStarting(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsStartingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DragItemsStarting_revoker>(this, DragItemsStarting(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsStarting(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DragItemsStarting(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            _winrt_abi_type->remove_DragItemsStarting(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsCompleted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsCompletedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DragItemsCompleted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            check_hresult(_winrt_abi_type->add_DragItemsCompleted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsCompleted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsCompletedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DragItemsCompleted_revoker>(this, DragItemsCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeView2<D>::DragItemsCompleted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DragItemsCompleted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeView2>**)this;
            _winrt_abi_type->remove_DragItemsCompleted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewCollapsedEventArgs<D>::Node() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Node(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Node(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::TreeViewNode{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewCollapsedEventArgs2<D>::Item() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2>**)this;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsCompletedEventArgs<D>::DropResult() const
    {
        winrt::Windows::ApplicationModel::DataTransfer::DataPackageOperation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DropResult(reinterpret_cast<uint32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_DropResult(reinterpret_cast<uint32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsCompletedEventArgs<D>::Items() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        return winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Cancel() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Cancel(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Data() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Data(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Data(&value));
        }
        return winrt::Windows::ApplicationModel::DataTransfer::DataPackage{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewDragItemsStartingEventArgs<D>::Items() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Items(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewExpandingEventArgs<D>::Node() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Node(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Node(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::TreeViewNode{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewExpandingEventArgs2<D>::Item() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2>**)this;
            check_hresult(_winrt_abi_type->get_Item(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::TreeView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphOpacity() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GlyphOpacity(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->get_GlyphOpacity(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphOpacity(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_GlyphOpacity(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->put_GlyphOpacity(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphBrush() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GlyphBrush(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->get_GlyphBrush(&value));
        }
        return winrt::Windows::UI::Xaml::Media::Brush{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphBrush(winrt::Windows::UI::Xaml::Media::Brush const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_GlyphBrush(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->put_GlyphBrush(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::ExpandedGlyph() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExpandedGlyph(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->get_ExpandedGlyph(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::ExpandedGlyph(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ExpandedGlyph(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->put_ExpandedGlyph(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::CollapsedGlyph() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CollapsedGlyph(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->get_CollapsedGlyph(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::CollapsedGlyph(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_CollapsedGlyph(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->put_CollapsedGlyph(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphSize() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GlyphSize(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->get_GlyphSize(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::GlyphSize(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_GlyphSize(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->put_GlyphSize(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::IsExpanded() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsExpanded(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->get_IsExpanded(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::IsExpanded(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsExpanded(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->put_IsExpanded(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem<D>::TreeViewItemTemplateSettings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TreeViewItemTemplateSettings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem>**)this;
            check_hresult(_winrt_abi_type->get_TreeViewItemTemplateSettings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::HasUnrealizedChildren() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HasUnrealizedChildren(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>**)this;
            check_hresult(_winrt_abi_type->get_HasUnrealizedChildren(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::HasUnrealizedChildren(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HasUnrealizedChildren(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>**)this;
            check_hresult(_winrt_abi_type->put_HasUnrealizedChildren(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::ItemsSource() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsSource(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>**)this;
            check_hresult(_winrt_abi_type->get_ItemsSource(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItem2<D>::ItemsSource(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemsSource(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>**)this;
            check_hresult(_winrt_abi_type->put_ItemsSource(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::TreeViewItem{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemInvokedEventArgs<D>::InvokedItem() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_InvokedItem(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_InvokedItem(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemInvokedEventArgs<D>::Handled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemInvokedEventArgs<D>::Handled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::GlyphOpacityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GlyphOpacityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_GlyphOpacityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::GlyphBrushProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GlyphBrushProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_GlyphBrushProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::ExpandedGlyphProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExpandedGlyphProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_ExpandedGlyphProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::CollapsedGlyphProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CollapsedGlyphProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_CollapsedGlyphProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::GlyphSizeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_GlyphSizeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_GlyphSizeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::IsExpandedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsExpandedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsExpandedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics<D>::TreeViewItemTemplateSettingsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TreeViewItemTemplateSettingsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>**)this;
            check_hresult(_winrt_abi_type->get_TreeViewItemTemplateSettingsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics2<D>::HasUnrealizedChildrenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HasUnrealizedChildrenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2>**)this;
            check_hresult(_winrt_abi_type->get_HasUnrealizedChildrenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemStatics2<D>::ItemsSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ItemsSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::ExpandedGlyphVisibility() const
    {
        winrt::Windows::UI::Xaml::Visibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExpandedGlyphVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>**)this;
            check_hresult(_winrt_abi_type->get_ExpandedGlyphVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::CollapsedGlyphVisibility() const
    {
        winrt::Windows::UI::Xaml::Visibility value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CollapsedGlyphVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>**)this;
            check_hresult(_winrt_abi_type->get_CollapsedGlyphVisibility(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::Indentation() const
    {
        winrt::Windows::UI::Xaml::Thickness value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Indentation(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>**)this;
            check_hresult(_winrt_abi_type->get_Indentation(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettings<D>::DragItemsCount() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DragItemsCount(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>**)this;
            check_hresult(_winrt_abi_type->get_DragItemsCount(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::ExpandedGlyphVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExpandedGlyphVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>**)this;
            check_hresult(_winrt_abi_type->get_ExpandedGlyphVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::CollapsedGlyphVisibilityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CollapsedGlyphVisibilityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>**)this;
            check_hresult(_winrt_abi_type->get_CollapsedGlyphVisibilityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::IndentationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IndentationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>**)this;
            check_hresult(_winrt_abi_type->get_IndentationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewItemTemplateSettingsStatics<D>::DragItemsCountProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DragItemsCountProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>**)this;
            check_hresult(_winrt_abi_type->get_DragItemsCountProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewListFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewListFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewListFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewListFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewListFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::TreeViewList{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Content() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNode, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)this;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        return winrt::Windows::Foundation::IInspectable{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Content(winrt::Windows::Foundation::IInspectable const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNode, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)this;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Parent() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNode, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Parent(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)this;
            check_hresult(_winrt_abi_type->get_Parent(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::TreeViewNode{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::IsExpanded() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNode, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsExpanded(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)this;
            check_hresult(_winrt_abi_type->get_IsExpanded(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::IsExpanded(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNode, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsExpanded(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)this;
            check_hresult(_winrt_abi_type->put_IsExpanded(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::HasChildren() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNode, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HasChildren(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)this;
            check_hresult(_winrt_abi_type->get_HasChildren(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Depth() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNode, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Depth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)this;
            check_hresult(_winrt_abi_type->get_Depth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::HasUnrealizedChildren() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNode, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HasUnrealizedChildren(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)this;
            check_hresult(_winrt_abi_type->get_HasUnrealizedChildren(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::HasUnrealizedChildren(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNode, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HasUnrealizedChildren(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)this;
            check_hresult(_winrt_abi_type->put_HasUnrealizedChildren(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNode<D>::Children() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNode, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Children(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNode>**)this;
            check_hresult(_winrt_abi_type->get_Children(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::TreeViewNode>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNodeFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNodeFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::TreeViewNode{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::ContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::DepthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DepthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>**)this;
            check_hresult(_winrt_abi_type->get_DepthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::IsExpandedProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsExpandedProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsExpandedProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewNodeStatics<D>::HasChildrenProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HasChildrenProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>**)this;
            check_hresult(_winrt_abi_type->get_HasChildrenProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics<D>::SelectionModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SelectionModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_SelectionModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::CanDragItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanDragItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CanDragItemsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::CanReorderItemsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanReorderItemsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CanReorderItemsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemTemplateProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTemplateProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ItemTemplateProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemTemplateSelectorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemTemplateSelectorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ItemTemplateSelectorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemContainerStyleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemContainerStyleSelectorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleSelectorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerStyleSelectorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemContainerTransitionsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerTransitionsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerTransitionsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITreeViewStatics2<D>::ItemsSourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemsSourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_ItemsSourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane1() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Pane1(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->get_Pane1(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane1(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Pane1(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->put_Pane1(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane2() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Pane2(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->get_Pane2(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane2(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Pane2(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->put_Pane2(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane1Length() const
    {
        winrt::Windows::UI::Xaml::GridLength value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Pane1Length(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->get_Pane1Length(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane1Length(winrt::Windows::UI::Xaml::GridLength const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Pane1Length(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->put_Pane1Length(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane2Length() const
    {
        winrt::Windows::UI::Xaml::GridLength value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Pane2Length(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->get_Pane2Length(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Pane2Length(winrt::Windows::UI::Xaml::GridLength const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Pane2Length(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->put_Pane2Length(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::PanePriority() const
    {
        winrt::Windows::UI::Xaml::Controls::TwoPaneViewPriority value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PanePriority(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->get_PanePriority(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::PanePriority(winrt::Windows::UI::Xaml::Controls::TwoPaneViewPriority const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_PanePriority(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->put_PanePriority(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::Mode() const
    {
        winrt::Windows::UI::Xaml::Controls::TwoPaneViewMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Mode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->get_Mode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::WideModeConfiguration() const
    {
        winrt::Windows::UI::Xaml::Controls::TwoPaneViewWideModeConfiguration value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_WideModeConfiguration(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->get_WideModeConfiguration(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::WideModeConfiguration(winrt::Windows::UI::Xaml::Controls::TwoPaneViewWideModeConfiguration const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_WideModeConfiguration(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->put_WideModeConfiguration(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::TallModeConfiguration() const
    {
        winrt::Windows::UI::Xaml::Controls::TwoPaneViewTallModeConfiguration value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TallModeConfiguration(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->get_TallModeConfiguration(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::TallModeConfiguration(winrt::Windows::UI::Xaml::Controls::TwoPaneViewTallModeConfiguration const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_TallModeConfiguration(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->put_TallModeConfiguration(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::MinWideModeWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinWideModeWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->get_MinWideModeWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::MinWideModeWidth(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinWideModeWidth(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->put_MinWideModeWidth(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::MinTallModeHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinTallModeHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->get_MinTallModeHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::MinTallModeHeight(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MinTallModeHeight(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->put_MinTallModeHeight(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::ModeChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TwoPaneView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ModeChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            check_hresult(_winrt_abi_type->add_ModeChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::ModeChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TwoPaneView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, ModeChanged_revoker>(this, ModeChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneView<D>::ModeChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ModeChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneView>**)this;
            _winrt_abi_type->remove_ModeChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::TwoPaneView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::Pane1Property() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Pane1Property(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_Pane1Property(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::Pane2Property() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Pane2Property(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_Pane2Property(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::Pane1LengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Pane1LengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_Pane1LengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::Pane2LengthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Pane2LengthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_Pane2LengthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::PanePriorityProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PanePriorityProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_PanePriorityProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::ModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_ModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::WideModeConfigurationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_WideModeConfigurationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_WideModeConfigurationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::TallModeConfigurationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_TallModeConfigurationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_TallModeConfigurationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::MinWideModeWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinWideModeWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinWideModeWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_ITwoPaneViewStatics<D>::MinTallModeHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MinTallModeHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_MinTallModeHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IUIElementCollection<D>::Move(uint32_t oldIndex, uint32_t newIndex) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IUIElementCollection>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IUIElementCollection, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IUIElementCollection>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Move(oldIndex, newIndex));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IUIElementCollection>**)this;
            check_hresult(_winrt_abi_type->Move(oldIndex, newIndex));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IUserControl<D>::Content() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IUserControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IUserControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IUserControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IUserControl>**)this;
            check_hresult(_winrt_abi_type->get_Content(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IUserControl<D>::Content(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IUserControl>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IUserControl, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IUserControl>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IUserControl>**)this;
            check_hresult(_winrt_abi_type->put_Content(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IUserControlFactory<D>::CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IUserControlFactory>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IUserControlFactory, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IUserControlFactory>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IUserControlFactory>**)this;
            check_hresult(_winrt_abi_type->CreateInstance(*(void**)(&baseInterface), impl::bind_out(innerInterface), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::UserControl{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IUserControlStatics<D>::ContentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IUserControlStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IUserControlStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IUserControlStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IUserControlStatics>**)this;
            check_hresult(_winrt_abi_type->get_ContentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_ItemHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemHeight(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemHeight(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_ItemHeight(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_ItemWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::ItemWidth(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemWidth(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_ItemWidth(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::Orientation() const
    {
        winrt::Windows::UI::Xaml::Controls::Orientation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::Orientation(winrt::Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::HorizontalChildrenAlignment() const
    {
        winrt::Windows::UI::Xaml::HorizontalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalChildrenAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalChildrenAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::HorizontalChildrenAlignment(winrt::Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalChildrenAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalChildrenAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::VerticalChildrenAlignment() const
    {
        winrt::Windows::UI::Xaml::VerticalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalChildrenAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_VerticalChildrenAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::VerticalChildrenAlignment(winrt::Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalChildrenAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_VerticalChildrenAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::MaximumRowsOrColumns() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumns(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumns(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGrid<D>::MaximumRowsOrColumns(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaximumRowsOrColumns(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_MaximumRowsOrColumns(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::ItemHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::ItemWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::HorizontalChildrenAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalChildrenAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalChildrenAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::VerticalChildrenAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalChildrenAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalChildrenAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::MaximumRowsOrColumnsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumnsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumnsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::RowSpanProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_RowSpanProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_RowSpanProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::GetRowSpan(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetRowSpan(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->GetRowSpan(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::SetRowSpan(winrt::Windows::UI::Xaml::UIElement const& element, int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetRowSpan(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->SetRowSpan(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::ColumnSpanProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ColumnSpanProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_ColumnSpanProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::GetColumnSpan(winrt::Windows::UI::Xaml::UIElement const& element) const
    {
        int32_t result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetColumnSpan(*(void**)(&element), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->GetColumnSpan(*(void**)(&element), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVariableSizedWrapGridStatics<D>::SetColumnSpan(winrt::Windows::UI::Xaml::UIElement const& element, int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetColumnSpan(*(void**)(&element), value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->SetColumnSpan(*(void**)(&element), value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::Child() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IViewbox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IViewbox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Child(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)this;
            check_hresult(_winrt_abi_type->get_Child(&value));
        }
        return winrt::Windows::UI::Xaml::UIElement{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::Child(winrt::Windows::UI::Xaml::UIElement const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IViewbox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IViewbox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Child(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)this;
            check_hresult(_winrt_abi_type->put_Child(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::Stretch() const
    {
        winrt::Windows::UI::Xaml::Media::Stretch value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IViewbox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IViewbox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)this;
            check_hresult(_winrt_abi_type->get_Stretch(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::Stretch(winrt::Windows::UI::Xaml::Media::Stretch const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IViewbox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IViewbox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)this;
            check_hresult(_winrt_abi_type->put_Stretch(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::StretchDirection() const
    {
        winrt::Windows::UI::Xaml::Controls::StretchDirection value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IViewbox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IViewbox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StretchDirection(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)this;
            check_hresult(_winrt_abi_type->get_StretchDirection(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewbox<D>::StretchDirection(winrt::Windows::UI::Xaml::Controls::StretchDirection const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IViewbox>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IViewbox, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_StretchDirection(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewbox>**)this;
            check_hresult(_winrt_abi_type->put_StretchDirection(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewboxStatics<D>::StretchProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IViewboxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IViewboxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewboxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewboxStatics>**)this;
            check_hresult(_winrt_abi_type->get_StretchProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IViewboxStatics<D>::StretchDirectionProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IViewboxStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IViewboxStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewboxStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StretchDirectionProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IViewboxStatics>**)this;
            check_hresult(_winrt_abi_type->get_StretchDirectionProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanel<D>::ItemContainerGenerator() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemContainerGenerator(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanel>**)this;
            check_hresult(_winrt_abi_type->get_ItemContainerGenerator(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::ItemContainerGenerator{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelOverrides<D>::OnItemsChanged(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs const& args) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnItemsChanged(*(void**)(&sender), *(void**)(&args)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>**)this;
            check_hresult(_winrt_abi_type->OnItemsChanged(*(void**)(&sender), *(void**)(&args)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelOverrides<D>::OnClearChildren() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnClearChildren());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>**)this;
            check_hresult(_winrt_abi_type->OnClearChildren());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelOverrides<D>::BringIndexIntoView(int32_t index) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->BringIndexIntoView(index));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>**)this;
            check_hresult(_winrt_abi_type->BringIndexIntoView(index));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelProtected<D>::AddInternalChild(winrt::Windows::UI::Xaml::UIElement const& child) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->AddInternalChild(*(void**)(&child)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>**)this;
            check_hresult(_winrt_abi_type->AddInternalChild(*(void**)(&child)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelProtected<D>::InsertInternalChild(int32_t index, winrt::Windows::UI::Xaml::UIElement const& child) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->InsertInternalChild(index, *(void**)(&child)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>**)this;
            check_hresult(_winrt_abi_type->InsertInternalChild(index, *(void**)(&child)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingPanelProtected<D>::RemoveInternalChildRange(int32_t index, int32_t range) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->RemoveInternalChildRange(index, range));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>**)this;
            check_hresult(_winrt_abi_type->RemoveInternalChildRange(index, range));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::AreScrollSnapPointsRegular() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreScrollSnapPointsRegular(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_AreScrollSnapPointsRegular(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::AreScrollSnapPointsRegular(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AreScrollSnapPointsRegular(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)this;
            check_hresult(_winrt_abi_type->put_AreScrollSnapPointsRegular(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::Orientation() const
    {
        winrt::Windows::UI::Xaml::Controls::Orientation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)this;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::Orientation(winrt::Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)this;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent(winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_CleanUpVirtualizedItemEvent(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)this;
            check_hresult(_winrt_abi_type->add_CleanUpVirtualizedItemEvent(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, CleanUpVirtualizedItemEvent_revoker>(this, CleanUpVirtualizedItemEvent(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanel<D>::CleanUpVirtualizedItemEvent(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)&_winrt_casted_result;
            _winrt_abi_type->remove_CleanUpVirtualizedItemEvent(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>**)this;
            _winrt_abi_type->remove_CleanUpVirtualizedItemEvent(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelOverrides<D>::OnCleanUpVirtualizedItem(winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const& e) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->OnCleanUpVirtualizedItem(*(void**)(&e)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides>**)this;
            check_hresult(_winrt_abi_type->OnCleanUpVirtualizedItem(*(void**)(&e)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::AreScrollSnapPointsRegularProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AreScrollSnapPointsRegularProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_AreScrollSnapPointsRegularProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::VirtualizationModeProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VirtualizationModeProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_VirtualizationModeProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::GetVirtualizationMode(winrt::Windows::UI::Xaml::DependencyObject const& element) const
    {
        winrt::Windows::UI::Xaml::Controls::VirtualizationMode result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetVirtualizationMode(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetVirtualizationMode(*(void**)(&element), reinterpret_cast<int32_t*>(&result)));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::SetVirtualizationMode(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::VirtualizationMode const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetVirtualizationMode(*(void**)(&element), static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->SetVirtualizationMode(*(void**)(&element), static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::IsVirtualizingProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsVirtualizingProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->get_IsVirtualizingProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IVirtualizingStackPanelStatics<D>::GetIsVirtualizing(winrt::Windows::UI::Xaml::DependencyObject const& o) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetIsVirtualizing(*(void**)(&o), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>**)this;
            check_hresult(_winrt_abi_type->GetIsVirtualizing(*(void**)(&o), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::Source() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            check_hresult(_winrt_abi_type->get_Source(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::Source(winrt::Windows::Foundation::Uri const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            check_hresult(_winrt_abi_type->put_Source(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::AllowedScriptNotifyUris() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AllowedScriptNotifyUris(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            check_hresult(_winrt_abi_type->get_AllowedScriptNotifyUris(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::Uri>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::AllowedScriptNotifyUris(param::vector<winrt::Windows::Foundation::Uri> const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_AllowedScriptNotifyUris(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            check_hresult(_winrt_abi_type->put_AllowedScriptNotifyUris(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::DataTransferPackage() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DataTransferPackage(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            check_hresult(_winrt_abi_type->get_DataTransferPackage(&value));
        }
        return winrt::Windows::ApplicationModel::DataTransfer::DataPackage{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted(winrt::Windows::UI::Xaml::Navigation::LoadCompletedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_LoadCompleted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            check_hresult(_winrt_abi_type->add_LoadCompleted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted(auto_revoke_t, winrt::Windows::UI::Xaml::Navigation::LoadCompletedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, LoadCompleted_revoker>(this, LoadCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::LoadCompleted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_LoadCompleted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            _winrt_abi_type->remove_LoadCompleted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify(winrt::Windows::UI::Xaml::Controls::NotifyEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ScriptNotify(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            check_hresult(_winrt_abi_type->add_ScriptNotify(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::NotifyEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, ScriptNotify_revoker>(this, ScriptNotify(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::ScriptNotify(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ScriptNotify(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            _winrt_abi_type->remove_ScriptNotify(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed(winrt::Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_NavigationFailed(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            check_hresult(_winrt_abi_type->add_NavigationFailed(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed(auto_revoke_t, winrt::Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler const& handler) const
    {
        return impl::make_event_revoker<D, NavigationFailed_revoker>(this, NavigationFailed(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigationFailed(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            _winrt_abi_type->remove_NavigationFailed(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            _winrt_abi_type->remove_NavigationFailed(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::InvokeScript(param::hstring const& scriptName, array_view<hstring const> arguments) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->InvokeScript(*(void**)(&scriptName), arguments.size(), get_abi(arguments), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            check_hresult(_winrt_abi_type->InvokeScript(*(void**)(&scriptName), arguments.size(), get_abi(arguments), &result));
        }
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::Navigate(winrt::Windows::Foundation::Uri const& source) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Navigate(*(void**)(&source)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            check_hresult(_winrt_abi_type->Navigate(*(void**)(&source)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView<D>::NavigateToString(param::hstring const& text) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->NavigateToString(*(void**)(&text)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView>**)this;
            check_hresult(_winrt_abi_type->NavigateToString(*(void**)(&text)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::CanGoBack() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanGoBack(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->get_CanGoBack(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::CanGoForward() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanGoForward(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->get_CanGoForward(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::DocumentTitle() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DocumentTitle(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->get_DocumentTitle(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationStarting(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_NavigationStarting(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->add_NavigationStarting(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationStarting(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, NavigationStarting_revoker>(this, NavigationStarting(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationStarting(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_NavigationStarting(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            _winrt_abi_type->remove_NavigationStarting(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::ContentLoading(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ContentLoading(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->add_ContentLoading(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::ContentLoading(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, ContentLoading_revoker>(this, ContentLoading(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::ContentLoading(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ContentLoading(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            _winrt_abi_type->remove_ContentLoading(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::DOMContentLoaded(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_DOMContentLoaded(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->add_DOMContentLoaded(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::DOMContentLoaded(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, DOMContentLoaded_revoker>(this, DOMContentLoaded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::DOMContentLoaded(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_DOMContentLoaded(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            _winrt_abi_type->remove_DOMContentLoaded(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::GoForward() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GoForward());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->GoForward());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::GoBack() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GoBack());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->GoBack());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::Refresh() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Refresh());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->Refresh());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::Stop() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Stop());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->Stop());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::CapturePreviewToStreamAsync(winrt::Windows::Storage::Streams::IRandomAccessStream const& stream) const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CapturePreviewToStreamAsync(*(void**)(&stream), &operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->CapturePreviewToStreamAsync(*(void**)(&stream), &operation));
        }
        return winrt::Windows::Foundation::IAsyncAction{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::InvokeScriptAsync(param::hstring const& scriptName, param::async_iterable<hstring> const& arguments) const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->InvokeScriptAsync(*(void**)(&scriptName), *(void**)(&arguments), &operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->InvokeScriptAsync(*(void**)(&scriptName), *(void**)(&arguments), &operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<hstring>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::CaptureSelectedContentToDataPackageAsync() const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CaptureSelectedContentToDataPackageAsync(&operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->CaptureSelectedContentToDataPackageAsync(&operation));
        }
        return winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::ApplicationModel::DataTransfer::DataPackage>{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigateToLocalStreamUri(winrt::Windows::Foundation::Uri const& source, winrt::Windows::Web::IUriToStreamResolver const& streamResolver) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->NavigateToLocalStreamUri(*(void**)(&source), *(void**)(&streamResolver)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->NavigateToLocalStreamUri(*(void**)(&source), *(void**)(&streamResolver)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::BuildLocalStreamUri(param::hstring const& contentIdentifier, param::hstring const& relativePath) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->BuildLocalStreamUri(*(void**)(&contentIdentifier), *(void**)(&relativePath), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->BuildLocalStreamUri(*(void**)(&contentIdentifier), *(void**)(&relativePath), &result));
        }
        return winrt::Windows::Foundation::Uri{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::DefaultBackgroundColor() const
    {
        winrt::Windows::UI::Color value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultBackgroundColor(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->get_DefaultBackgroundColor(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::DefaultBackgroundColor(winrt::Windows::UI::Color const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_DefaultBackgroundColor(impl::bind_in(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->put_DefaultBackgroundColor(impl::bind_in(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationCompleted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_NavigationCompleted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->add_NavigationCompleted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationCompleted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, NavigationCompleted_revoker>(this, NavigationCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigationCompleted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_NavigationCompleted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            _winrt_abi_type->remove_NavigationCompleted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationStarting(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_FrameNavigationStarting(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->add_FrameNavigationStarting(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationStarting(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FrameNavigationStarting_revoker>(this, FrameNavigationStarting(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationStarting(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_FrameNavigationStarting(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            _winrt_abi_type->remove_FrameNavigationStarting(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameContentLoading(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_FrameContentLoading(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->add_FrameContentLoading(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameContentLoading(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FrameContentLoading_revoker>(this, FrameContentLoading(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameContentLoading(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_FrameContentLoading(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            _winrt_abi_type->remove_FrameContentLoading(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameDOMContentLoaded(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_FrameDOMContentLoaded(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->add_FrameDOMContentLoaded(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameDOMContentLoaded(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FrameDOMContentLoaded_revoker>(this, FrameDOMContentLoaded(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameDOMContentLoaded(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_FrameDOMContentLoaded(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            _winrt_abi_type->remove_FrameDOMContentLoaded(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationCompleted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_FrameNavigationCompleted(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->add_FrameNavigationCompleted(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationCompleted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, FrameNavigationCompleted_revoker>(this, FrameNavigationCompleted(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::FrameNavigationCompleted(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_FrameNavigationCompleted(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            _winrt_abi_type->remove_FrameNavigationCompleted(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::LongRunningScriptDetected(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_LongRunningScriptDetected(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->add_LongRunningScriptDetected(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::LongRunningScriptDetected(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, LongRunningScriptDetected_revoker>(this, LongRunningScriptDetected(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::LongRunningScriptDetected(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_LongRunningScriptDetected(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            _winrt_abi_type->remove_LongRunningScriptDetected(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnsafeContentWarningDisplaying(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_UnsafeContentWarningDisplaying(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->add_UnsafeContentWarningDisplaying(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnsafeContentWarningDisplaying(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, UnsafeContentWarningDisplaying_revoker>(this, UnsafeContentWarningDisplaying(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnsafeContentWarningDisplaying(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_UnsafeContentWarningDisplaying(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            _winrt_abi_type->remove_UnsafeContentWarningDisplaying(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnviewableContentIdentified(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_UnviewableContentIdentified(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->add_UnviewableContentIdentified(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnviewableContentIdentified(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, UnviewableContentIdentified_revoker>(this, UnviewableContentIdentified(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::UnviewableContentIdentified(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            _winrt_abi_type->remove_UnviewableContentIdentified(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            _winrt_abi_type->remove_UnviewableContentIdentified(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::NavigateWithHttpRequestMessage(winrt::Windows::Web::Http::HttpRequestMessage const& requestMessage) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->NavigateWithHttpRequestMessage(*(void**)(&requestMessage)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->NavigateWithHttpRequestMessage(*(void**)(&requestMessage)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView2<D>::Focus(winrt::Windows::UI::Xaml::FocusState const& value) const
    {
        bool result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Focus(static_cast<int32_t>(value), &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView2>**)this;
            check_hresult(_winrt_abi_type->Focus(static_cast<int32_t>(value), &result));
        }
        return result;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElement() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContainsFullScreenElement(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView3>**)this;
            check_hresult(_winrt_abi_type->get_ContainsFullScreenElement(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElementChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_ContainsFullScreenElementChanged(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView3>**)this;
            check_hresult(_winrt_abi_type->add_ContainsFullScreenElementChanged(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElementChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::Foundation::IInspectable> const& handler) const
    {
        return impl::make_event_revoker<D, ContainsFullScreenElementChanged_revoker>(this, ContainsFullScreenElementChanged(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView3<D>::ContainsFullScreenElementChanged(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView3>**)&_winrt_casted_result;
            _winrt_abi_type->remove_ContainsFullScreenElementChanged(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView3>**)this;
            _winrt_abi_type->remove_ContainsFullScreenElementChanged(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::ExecutionMode() const
    {
        winrt::Windows::UI::Xaml::Controls::WebViewExecutionMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExecutionMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)this;
            check_hresult(_winrt_abi_type->get_ExecutionMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::DeferredPermissionRequests() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DeferredPermissionRequests(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)this;
            check_hresult(_winrt_abi_type->get_DeferredPermissionRequests(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::Settings() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Settings(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)this;
            check_hresult(_winrt_abi_type->get_Settings(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::WebViewSettings{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::UnsupportedUriSchemeIdentified(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_UnsupportedUriSchemeIdentified(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)this;
            check_hresult(_winrt_abi_type->add_UnsupportedUriSchemeIdentified(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::UnsupportedUriSchemeIdentified(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, UnsupportedUriSchemeIdentified_revoker>(this, UnsupportedUriSchemeIdentified(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::UnsupportedUriSchemeIdentified(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)&_winrt_casted_result;
            _winrt_abi_type->remove_UnsupportedUriSchemeIdentified(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)this;
            _winrt_abi_type->remove_UnsupportedUriSchemeIdentified(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::NewWindowRequested(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_NewWindowRequested(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)this;
            check_hresult(_winrt_abi_type->add_NewWindowRequested(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::NewWindowRequested(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, NewWindowRequested_revoker>(this, NewWindowRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::NewWindowRequested(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)&_winrt_casted_result;
            _winrt_abi_type->remove_NewWindowRequested(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)this;
            _winrt_abi_type->remove_NewWindowRequested(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::PermissionRequested(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_PermissionRequested(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)this;
            check_hresult(_winrt_abi_type->add_PermissionRequested(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::PermissionRequested(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, PermissionRequested_revoker>(this, PermissionRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::PermissionRequested(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)&_winrt_casted_result;
            _winrt_abi_type->remove_PermissionRequested(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)this;
            _winrt_abi_type->remove_PermissionRequested(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::AddWebAllowedObject(param::hstring const& name, winrt::Windows::Foundation::IInspectable const& pObject) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->AddWebAllowedObject(*(void**)(&name), *(void**)(&pObject)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)this;
            check_hresult(_winrt_abi_type->AddWebAllowedObject(*(void**)(&name), *(void**)(&pObject)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView4<D>::DeferredPermissionRequestById(uint32_t id) const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->DeferredPermissionRequestById(id, &result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView4>**)this;
            check_hresult(_winrt_abi_type->DeferredPermissionRequestById(id, &result));
        }
        return winrt::Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusLeft() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusLeft(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusLeft(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusLeft(winrt::Windows::UI::Xaml::DependencyObject const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_XYFocusLeft(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)this;
            check_hresult(_winrt_abi_type->put_XYFocusLeft(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusRight() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusRight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusRight(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusRight(winrt::Windows::UI::Xaml::DependencyObject const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_XYFocusRight(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)this;
            check_hresult(_winrt_abi_type->put_XYFocusRight(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusUp() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusUp(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusUp(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusUp(winrt::Windows::UI::Xaml::DependencyObject const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_XYFocusUp(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)this;
            check_hresult(_winrt_abi_type->put_XYFocusUp(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusDown() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusDown(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusDown(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyObject{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView5<D>::XYFocusDown(winrt::Windows::UI::Xaml::DependencyObject const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_XYFocusDown(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView5>**)this;
            check_hresult(_winrt_abi_type->put_XYFocusDown(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView6<D>::SeparateProcessLost(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView6>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_SeparateProcessLost(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView6>**)this;
            check_hresult(_winrt_abi_type->add_SeparateProcessLost(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView6<D>::SeparateProcessLost(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, SeparateProcessLost_revoker>(this, SeparateProcessLost(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView6<D>::SeparateProcessLost(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView6>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView6, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView6>**)&_winrt_casted_result;
            _winrt_abi_type->remove_SeparateProcessLost(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView6>**)this;
            _winrt_abi_type->remove_SeparateProcessLost(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView7<D>::WebResourceRequested(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewWebResourceRequestedEventArgs> const& handler) const
    {
        winrt::event_token token{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView7>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->add_WebResourceRequested(*(void**)(&handler), put_abi(token)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView7>**)this;
            check_hresult(_winrt_abi_type->add_WebResourceRequested(*(void**)(&handler), put_abi(token)));
        }
        return token;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView7<D>::WebResourceRequested(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewWebResourceRequestedEventArgs> const& handler) const
    {
        return impl::make_event_revoker<D, WebResourceRequested_revoker>(this, WebResourceRequested(handler));
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebView7<D>::WebResourceRequested(winrt::event_token const& token) const noexcept
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebView7>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebView7, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView7>**)&_winrt_casted_result;
            _winrt_abi_type->remove_WebResourceRequested(impl::bind_in(token));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebView7>**)this;
            _winrt_abi_type->remove_WebResourceRequested(impl::bind_in(token));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::SourceName() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewBrush>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewBrush, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewBrush>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SourceName(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewBrush>**)this;
            check_hresult(_winrt_abi_type->get_SourceName(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::SourceName(param::hstring const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewBrush>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewBrush, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewBrush>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_SourceName(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewBrush>**)this;
            check_hresult(_winrt_abi_type->put_SourceName(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::Redraw() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewBrush>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewBrush, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewBrush>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Redraw());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewBrush>**)this;
            check_hresult(_winrt_abi_type->Redraw());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewBrush<D>::SetSource(winrt::Windows::UI::Xaml::Controls::WebView const& source) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewBrush>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewBrush, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewBrush>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->SetSource(*(void**)(&source)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewBrush>**)this;
            check_hresult(_winrt_abi_type->SetSource(*(void**)(&source)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewBrushStatics<D>::SourceNameProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewBrushStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewBrushStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewBrushStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SourceNameProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewBrushStatics>**)this;
            check_hresult(_winrt_abi_type->get_SourceNameProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewContentLoadingEventArgs<D>::Uri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDOMContentLoadedEventArgs<D>::Uri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Uri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::PermissionType() const
    {
        winrt::Windows::UI::Xaml::Controls::WebViewPermissionType value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PermissionType(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->get_PermissionType(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Id() const
    {
        uint32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Id(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->get_Id(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Allow() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Allow());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->Allow());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewDeferredPermissionRequest<D>::Deny() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Deny());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->Deny());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewFactory4<D>::CreateInstanceWithExecutionMode(winrt::Windows::UI::Xaml::Controls::WebViewExecutionMode const& executionMode) const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewFactory4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewFactory4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewFactory4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->CreateInstanceWithExecutionMode(static_cast<int32_t>(executionMode), &value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewFactory4>**)this;
            check_hresult(_winrt_abi_type->CreateInstanceWithExecutionMode(static_cast<int32_t>(executionMode), &value));
        }
        return winrt::Windows::UI::Xaml::Controls::WebView{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewLongRunningScriptDetectedEventArgs<D>::ExecutionTime() const
    {
        winrt::Windows::Foundation::TimeSpan value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ExecutionTime(put_abi(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_ExecutionTime(put_abi(value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewLongRunningScriptDetectedEventArgs<D>::StopPageScriptExecution() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_StopPageScriptExecution(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_StopPageScriptExecution(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewLongRunningScriptDetectedEventArgs<D>::StopPageScriptExecution(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_StopPageScriptExecution(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_StopPageScriptExecution(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationCompletedEventArgs<D>::Uri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationCompletedEventArgs<D>::IsSuccess() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsSuccess(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_IsSuccess(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationCompletedEventArgs<D>::WebErrorStatus() const
    {
        winrt::Windows::Web::WebErrorStatus value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_WebErrorStatus(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_WebErrorStatus(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationFailedEventArgs<D>::Uri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationFailedEventArgs<D>::WebErrorStatus() const
    {
        winrt::Windows::Web::WebErrorStatus value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_WebErrorStatus(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_WebErrorStatus(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationStartingEventArgs<D>::Uri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationStartingEventArgs<D>::Cancel() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Cancel(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNavigationStartingEventArgs<D>::Cancel(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Cancel(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Uri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Referrer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Referrer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Referrer(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Handled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewNewWindowRequestedEventArgs<D>::Handled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Uri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::PermissionType() const
    {
        winrt::Windows::UI::Xaml::Controls::WebViewPermissionType value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PermissionType(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->get_PermissionType(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Id() const
    {
        uint32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Id(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->get_Id(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::State() const
    {
        winrt::Windows::UI::Xaml::Controls::WebViewPermissionState value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_State(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->get_State(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Defer() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Defer());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->Defer());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Allow() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Allow());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->Allow());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequest<D>::Deny() const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->Deny());
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>**)this;
            check_hresult(_winrt_abi_type->Deny());
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewPermissionRequestedEventArgs<D>::PermissionRequest() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_PermissionRequest(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_PermissionRequest(&value));
        }
        return winrt::Windows::UI::Xaml::Controls::WebViewPermissionRequest{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsJavaScriptEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsJavaScriptEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewSettings>**)this;
            check_hresult(_winrt_abi_type->get_IsJavaScriptEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsJavaScriptEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsJavaScriptEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewSettings>**)this;
            check_hresult(_winrt_abi_type->put_IsJavaScriptEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsIndexedDBEnabled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_IsIndexedDBEnabled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewSettings>**)this;
            check_hresult(_winrt_abi_type->get_IsIndexedDBEnabled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewSettings<D>::IsIndexedDBEnabled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewSettings>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewSettings, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewSettings>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_IsIndexedDBEnabled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewSettings>**)this;
            check_hresult(_winrt_abi_type->put_IsIndexedDBEnabled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::AnyScriptNotifyUri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AnyScriptNotifyUri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_AnyScriptNotifyUri(&value));
        }
        return winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::Uri>{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::SourceProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_SourceProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::AllowedScriptNotifyUrisProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_AllowedScriptNotifyUrisProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_AllowedScriptNotifyUrisProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics<D>::DataTransferPackageProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DataTransferPackageProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics>**)this;
            check_hresult(_winrt_abi_type->get_DataTransferPackageProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::CanGoBackProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanGoBackProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CanGoBackProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::CanGoForwardProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_CanGoForwardProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_CanGoForwardProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::DocumentTitleProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DocumentTitleProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_DocumentTitleProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics2<D>::DefaultBackgroundColorProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultBackgroundColorProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>**)this;
            check_hresult(_winrt_abi_type->get_DefaultBackgroundColorProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics3<D>::ContainsFullScreenElementProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics3>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics3, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics3>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ContainsFullScreenElementProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics3>**)this;
            check_hresult(_winrt_abi_type->get_ContainsFullScreenElementProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics4<D>::DefaultExecutionMode() const
    {
        winrt::Windows::UI::Xaml::Controls::WebViewExecutionMode value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_DefaultExecutionMode(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics4>**)this;
            check_hresult(_winrt_abi_type->get_DefaultExecutionMode(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics4<D>::ClearTemporaryWebDataAsync() const
    {
        void* operation{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics4>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics4, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics4>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->ClearTemporaryWebDataAsync(&operation));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics4>**)this;
            check_hresult(_winrt_abi_type->ClearTemporaryWebDataAsync(&operation));
        }
        return winrt::Windows::Foundation::IAsyncAction{ operation, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusLeftProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusLeftProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusLeftProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusRightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusRightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusRightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusUpProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusUpProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusUpProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewStatics5<D>::XYFocusDownProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_XYFocusDownProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>**)this;
            check_hresult(_winrt_abi_type->get_XYFocusDownProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnsupportedUriSchemeIdentifiedEventArgs<D>::Uri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnsupportedUriSchemeIdentifiedEventArgs<D>::Handled() const
    {
        bool value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Handled(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnsupportedUriSchemeIdentifiedEventArgs<D>::Handled(bool value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Handled(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnviewableContentIdentifiedEventArgs<D>::Uri() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Uri(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnviewableContentIdentifiedEventArgs<D>::Referrer() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Referrer(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Referrer(&value));
        }
        return winrt::Windows::Foundation::Uri{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewUnviewableContentIdentifiedEventArgs2<D>::MediaType() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MediaType(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2>**)this;
            check_hresult(_winrt_abi_type->get_MediaType(&value));
        }
        return hstring{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::Request() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Request(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Request(&value));
        }
        return winrt::Windows::Web::Http::HttpRequestMessage{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::Response() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Response(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->get_Response(&value));
        }
        return winrt::Windows::Web::Http::HttpResponseMessage{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::Response(winrt::Windows::Web::Http::HttpResponseMessage const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Response(*(void**)(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->put_Response(*(void**)(&value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWebViewWebResourceRequestedEventArgs<D>::GetDeferral() const
    {
        void* result{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->GetDeferral(&result));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>**)this;
            check_hresult(_winrt_abi_type->GetDeferral(&result));
        }
        return winrt::Windows::Foundation::Deferral{ result, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemWidth() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemWidth(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_ItemWidth(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemWidth(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemWidth(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_ItemWidth(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemHeight() const
    {
        double value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemHeight(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_ItemHeight(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::ItemHeight(double value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_ItemHeight(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_ItemHeight(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::Orientation() const
    {
        winrt::Windows::UI::Xaml::Controls::Orientation value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_Orientation(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::Orientation(winrt::Windows::UI::Xaml::Controls::Orientation const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_Orientation(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::HorizontalChildrenAlignment() const
    {
        winrt::Windows::UI::Xaml::HorizontalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalChildrenAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalChildrenAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::HorizontalChildrenAlignment(winrt::Windows::UI::Xaml::HorizontalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_HorizontalChildrenAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_HorizontalChildrenAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::VerticalChildrenAlignment() const
    {
        winrt::Windows::UI::Xaml::VerticalAlignment value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalChildrenAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_VerticalChildrenAlignment(reinterpret_cast<int32_t*>(&value)));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::VerticalChildrenAlignment(winrt::Windows::UI::Xaml::VerticalAlignment const& value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_VerticalChildrenAlignment(static_cast<int32_t>(value)));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_VerticalChildrenAlignment(static_cast<int32_t>(value)));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::MaximumRowsOrColumns() const
    {
        int32_t value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumns(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumns(&value));
        }
        return value;
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGrid<D>::MaximumRowsOrColumns(int32_t value) const
    {
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGrid, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->put_MaximumRowsOrColumns(value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGrid>**)this;
            check_hresult(_winrt_abi_type->put_MaximumRowsOrColumns(value));
        }
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::ItemWidthProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemWidthProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemWidthProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::ItemHeightProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_ItemHeightProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_ItemHeightProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::OrientationProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_OrientationProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::HorizontalChildrenAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_HorizontalChildrenAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_HorizontalChildrenAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::VerticalChildrenAlignmentProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_VerticalChildrenAlignmentProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_VerticalChildrenAlignmentProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename D> auto consume_Windows_UI_Xaml_Controls_IWrapGridStatics<D>::MaximumRowsOrColumnsProperty() const
    {
        void* value{};
        if constexpr (!std::is_same_v<D, winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>)
        {
            winrt::hresult _winrt_cast_result_code;
            auto const _winrt_casted_result = impl::try_as_with_reason<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics, D const*>(static_cast<D const*>(this), _winrt_cast_result_code);
            check_hresult(_winrt_cast_result_code);
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)&_winrt_casted_result;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumnsProperty(&value));
        }
        else
        {
            auto const _winrt_abi_type = *(abi_t<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>**)this;
            check_hresult(_winrt_abi_type->get_MaximumRowsOrColumnsProperty(&value));
        }
        return winrt::Windows::UI::Xaml::DependencyProperty{ value, take_ownership_from_abi };
    }
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::BackClickEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::BackClickEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::BackClickEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::BackClickEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CalendarView const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ContextMenuEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::DragItemsStartingEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::DragItemsStartingEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::DragItemsStartingEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DragItemsStartingEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::HubSectionHeaderClickEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::ItemClickEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::ItemClickEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::ItemClickEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ItemClickEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::ListViewItemToKeyHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::ListViewItemToKeyHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::ListViewItemToKeyHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            *result = detach_from<hstring>((*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::ListViewKeyToItemHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::ListViewKeyToItemHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::ListViewKeyToItemHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* key, void** operation) noexcept final try
        {
            clear_abi(operation);
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::IInspectable>>((*this)(*reinterpret_cast<hstring const*>(&key)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::NotifyEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::NotifyEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::NotifyEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::NotifyEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SectionsInViewChangedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::SelectionChangedEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::SelectionChangedEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::SelectionChangedEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SelectionChangedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::TextChangedEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::TextChangedEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::TextChangedEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TextChangedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TextControlPasteEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename H> struct delegate<winrt::Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler, H> final : implements_delegate<winrt::Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler, H>
    {
        delegate(H&& handler) : implements_delegate<winrt::Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler, H>(std::forward<H>(handler)) {}

        int32_t __stdcall Invoke(void* sender, void* e) noexcept final try
        {
            (*this)(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::WebViewNavigationFailedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs>
    {
        int32_t __stdcall get_Anchor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().Anchor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Anchor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Anchor(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AnchorCandidates(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::UIElement>>(this->shim().AnchorCandidates());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBar> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBar>
    {
        int32_t __stdcall get_IsOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSticky(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSticky());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSticky(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSticky(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Opened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opened(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Closed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closed(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBar2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBar2>
    {
        int32_t __stdcall get_ClosedDisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::AppBarClosedDisplayMode>(this->shim().ClosedDisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ClosedDisplayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClosedDisplayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::AppBarClosedDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBar3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBar3>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::AppBarTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Opening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opening(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Closing(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closing(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closing(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closing(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBar4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBar4>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton>
    {
        int32_t __stdcall get_Label(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Label());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Label(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Label(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Icon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Icon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton3>
    {
        int32_t __stdcall get_LabelPosition(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CommandBarLabelPosition>(this->shim().LabelPosition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LabelPosition(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LabelPosition(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CommandBarLabelPosition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton4>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverride(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_KeyboardAcceleratorTextOverride(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().KeyboardAcceleratorTextOverride(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton5>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::AppBarButtonTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::AppBarButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics>
    {
        int32_t __stdcall get_LabelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LabelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3>
    {
        int32_t __stdcall get_LabelPositionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LabelPositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsInOverflowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DynamicOverflowOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DynamicOverflowOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics4>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().KeyboardAcceleratorTextOverrideProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarElementContainer> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarElementContainer>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::AppBarElementContainer>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics>
    {
        int32_t __stdcall get_IsCompactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsInOverflowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DynamicOverflowOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DynamicOverflowOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::AppBar>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides>
    {
        int32_t __stdcall OnClosed(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnClosed(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnOpened(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOpened(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3>
    {
        int32_t __stdcall OnClosing(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnClosing(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnOpening(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOpening(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparator> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparator>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::AppBarSeparator>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics>
    {
        int32_t __stdcall get_IsCompactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3>
    {
        int32_t __stdcall get_IsInOverflowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DynamicOverflowOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DynamicOverflowOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarStatics>
    {
        int32_t __stdcall get_IsOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStickyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsStickyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarStatics2>
    {
        int32_t __stdcall get_ClosedDisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ClosedDisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarStatics4>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton>
    {
        int32_t __stdcall get_Label(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Label());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Label(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Label(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Icon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Icon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3>
    {
        int32_t __stdcall get_LabelPosition(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CommandBarLabelPosition>(this->shim().LabelPosition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LabelPosition(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LabelPosition(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CommandBarLabelPosition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverride(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_KeyboardAcceleratorTextOverride(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().KeyboardAcceleratorTextOverride(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton5>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::AppBarToggleButtonTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::AppBarToggleButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics>
    {
        int32_t __stdcall get_LabelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LabelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3>
    {
        int32_t __stdcall get_LabelPositionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LabelPositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsInOverflowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsInOverflowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DynamicOverflowOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DynamicOverflowOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().KeyboardAcceleratorTextOverrideProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox>
    {
        int32_t __stdcall get_MaxSuggestionListHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxSuggestionListHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxSuggestionListHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxSuggestionListHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSuggestionListOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSuggestionListOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSuggestionListOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSuggestionListOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextMemberPath(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().TextMemberPath());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextMemberPath(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextMemberPath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UpdateTextOnSelect(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().UpdateTextOnSelect());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UpdateTextOnSelect(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UpdateTextOnSelect(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoMaximizeSuggestionArea(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AutoMaximizeSuggestionArea());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AutoMaximizeSuggestionArea(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoMaximizeSuggestionArea(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextBoxStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().TextBoxStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextBoxStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextBoxStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SuggestionChosen(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SuggestionChosen(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox, winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SuggestionChosen(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SuggestionChosen(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox, winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2>
    {
        int32_t __stdcall get_QueryIcon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::IconElement>(this->shim().QueryIcon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_QueryIcon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QueryIcon(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_QuerySubmitted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().QuerySubmitted(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox, winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_QuerySubmitted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QuerySubmitted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4>
    {
        int32_t __stdcall get_Description(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs>
    {
        int32_t __stdcall get_QueryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChosenSuggestion(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().ChosenSuggestion());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics>
    {
        int32_t __stdcall get_MaxSuggestionListHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxSuggestionListHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSuggestionListOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSuggestionListOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextMemberPathProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextMemberPathProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UpdateTextOnSelectProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().UpdateTextOnSelectProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoMaximizeSuggestionAreaProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AutoMaximizeSuggestionAreaProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextBoxStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextBoxStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2>
    {
        int32_t __stdcall get_QueryIconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().QueryIconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4>
    {
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs>
    {
        int32_t __stdcall get_SelectedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs>
    {
        int32_t __stdcall get_Reason(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason>(this->shim().Reason());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Reason(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Reason(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::AutoSuggestionBoxTextChangeReason const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CheckCurrent(bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().CheckCurrent());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics>
    {
        int32_t __stdcall get_ReasonProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ReasonProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBitmapIcon> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBitmapIcon>
    {
        int32_t __stdcall get_UriSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().UriSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UriSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UriSource(*reinterpret_cast<winrt::Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBitmapIcon2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBitmapIcon2>
    {
        int32_t __stdcall get_ShowAsMonochrome(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowAsMonochrome());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowAsMonochrome(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAsMonochrome(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::BitmapIcon>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSource> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSource>
    {
        int32_t __stdcall get_UriSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().UriSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UriSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UriSource(*reinterpret_cast<winrt::Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowAsMonochrome(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowAsMonochrome());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowAsMonochrome(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAsMonochrome(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::BitmapIconSource>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics>
    {
        int32_t __stdcall get_UriSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().UriSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowAsMonochromeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ShowAsMonochromeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics>
    {
        int32_t __stdcall get_UriSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().UriSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics2>
    {
        int32_t __stdcall get_ShowAsMonochromeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ShowAsMonochromeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBorder> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBorder>
    {
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Background(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Background(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<winrt::Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Child(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().Child());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Child(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Child(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChildTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ChildTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ChildTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChildTransitions(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBorder2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBorder2>
    {
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundTransition(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::BrushTransition>(this->shim().BackgroundTransition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundTransition(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundTransition(*reinterpret_cast<winrt::Windows::UI::Xaml::BrushTransition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBorderStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBorderStatics>
    {
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChildTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ChildTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IBorderStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IBorderStatics2>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IButton>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::Button>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout>
    {
        int32_t __stdcall get_FlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout>
    {
        int32_t __stdcall get_Flyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().Flyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Flyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Flyout(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker>
    {
        int32_t __stdcall get_Date(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>>(this->shim().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Date(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Date(*reinterpret_cast<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCalendarOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCalendarOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsCalendarOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCalendarOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DateFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DateFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DateFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DateFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarViewStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().CalendarViewStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarViewStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinDate(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().MinDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinDate(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinDate(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDate(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().MaxDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxDate(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxDate(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTodayHighlighted(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTodayHighlighted());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTodayHighlighted(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTodayHighlighted(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CalendarViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisplayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CalendarViewDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstDayOfWeek(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Globalization::DayOfWeek>(this->shim().FirstDayOfWeek());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstDayOfWeek(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstDayOfWeek(*reinterpret_cast<winrt::Windows::Globalization::DayOfWeek const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayOfWeekFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayOfWeekFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayOfWeekFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayOfWeekFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOutOfScopeEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOutOfScopeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsOutOfScopeEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOutOfScopeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupLabelVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGroupLabelVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsGroupLabelVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsGroupLabelVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CalendarViewDayItemChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CalendarViewDayItemChanging(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CalendarViewDayItemChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewDayItemChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DateChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarDatePicker, winrt::Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Opened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opened(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Closed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closed(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SetDisplayDate(int64_t date) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDisplayDate(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&date));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetYearDecadeDisplayDimensions(columns, rows);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3>
    {
        int32_t __stdcall get_Description(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs>
    {
        int32_t __stdcall get_NewDate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>>(this->shim().NewDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OldDate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>>(this->shim().OldDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::CalendarDatePicker>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics>
    {
        int32_t __stdcall get_DateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCalendarOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsCalendarOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DateFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DateFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarViewStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarViewStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinDateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTodayHighlightedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTodayHighlightedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstDayOfWeekProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstDayOfWeekProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayOfWeekFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DayOfWeekFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOutOfScopeEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsOutOfScopeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupLabelVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupLabelVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3>
    {
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarView>
    {
        int32_t __stdcall get_CalendarIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayOfWeekFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayOfWeekFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayOfWeekFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayOfWeekFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupLabelVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGroupLabelVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsGroupLabelVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsGroupLabelVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CalendarViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisplayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CalendarViewDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstDayOfWeek(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Globalization::DayOfWeek>(this->shim().FirstDayOfWeek());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstDayOfWeek(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstDayOfWeek(*reinterpret_cast<winrt::Windows::Globalization::DayOfWeek const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOutOfScopeEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOutOfScopeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsOutOfScopeEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOutOfScopeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTodayHighlighted(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTodayHighlighted());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTodayHighlighted(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTodayHighlighted(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDate(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().MaxDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxDate(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxDate(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinDate(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().MinDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinDate(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinDate(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NumberOfWeeksInView(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().NumberOfWeeksInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_NumberOfWeeksInView(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NumberOfWeeksInView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedDates(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::DateTime>>(this->shim().SelectedDates());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CalendarViewSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CalendarViewSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::CalendarViewTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().FocusBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FocusBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusBorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedHoverBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().SelectedHoverBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedHoverBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedHoverBorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedPressedBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().SelectedPressedBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedPressedBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedPressedBorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().SelectedBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedBorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HoverBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().HoverBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HoverBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HoverBorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PressedBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().PressedBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PressedBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PressedBorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemBorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopeBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().OutOfScopeBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OutOfScopeBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OutOfScopeBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PressedForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().PressedForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PressedForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PressedForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().TodayForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TodayForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BlackoutForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().BlackoutForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BlackoutForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BlackoutForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().SelectedForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopeForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().OutOfScopeForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OutOfScopeForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OutOfScopeForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::FontFamily>(this->shim().DayItemFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayItemFontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontFamily(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DayItemFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayItemFontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStyle>(this->shim().DayItemFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayItemFontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontStyle(*reinterpret_cast<winrt::Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontWeight>(this->shim().DayItemFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayItemFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemFontWeight(*reinterpret_cast<winrt::Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontWeight>(this->shim().TodayFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TodayFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayFontWeight(*reinterpret_cast<winrt::Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::FontFamily>(this->shim().FirstOfMonthLabelFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfMonthLabelFontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontFamily(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FirstOfMonthLabelFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfMonthLabelFontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStyle>(this->shim().FirstOfMonthLabelFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfMonthLabelFontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontStyle(*reinterpret_cast<winrt::Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontWeight>(this->shim().FirstOfMonthLabelFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfMonthLabelFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelFontWeight(*reinterpret_cast<winrt::Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::FontFamily>(this->shim().MonthYearItemFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthYearItemFontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontFamily(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MonthYearItemFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthYearItemFontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStyle>(this->shim().MonthYearItemFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthYearItemFontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontStyle(*reinterpret_cast<winrt::Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontWeight>(this->shim().MonthYearItemFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthYearItemFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemFontWeight(*reinterpret_cast<winrt::Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::FontFamily>(this->shim().FirstOfYearDecadeLabelFontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfYearDecadeLabelFontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontFamily(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FirstOfYearDecadeLabelFontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfYearDecadeLabelFontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStyle>(this->shim().FirstOfYearDecadeLabelFontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfYearDecadeLabelFontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontStyle(*reinterpret_cast<winrt::Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontWeight>(this->shim().FirstOfYearDecadeLabelFontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfYearDecadeLabelFontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelFontWeight(*reinterpret_cast<winrt::Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalDayItemAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalDayItemAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalDayItemAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalDayItemAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalDayItemAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalDayItemAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalDayItemAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalDayItemAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalFirstOfMonthLabelAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalFirstOfMonthLabelAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalFirstOfMonthLabelAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalFirstOfMonthLabelAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalFirstOfMonthLabelAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalFirstOfMonthLabelAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalFirstOfMonthLabelAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalFirstOfMonthLabelAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().CalendarItemBorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemBorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemBorderThickness(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarViewDayItemStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().CalendarViewDayItemStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarViewDayItemStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewDayItemStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CalendarViewDayItemChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CalendarViewDayItemChanging(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarView, winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CalendarViewDayItemChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarViewDayItemChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SelectedDatesChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectedDatesChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarView, winrt::Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectedDatesChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedDatesChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SetDisplayDate(int64_t date) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDisplayDate(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&date));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetYearDecadeDisplayDimensions(int32_t columns, int32_t rows) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetYearDecadeDisplayDimensions(columns, rows);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarView2>
    {
        int32_t __stdcall get_SelectedDisabledBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().SelectedDisabledBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedDisabledBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedDisabledBorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodaySelectedInnerBorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().TodaySelectedInnerBorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TodaySelectedInnerBorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodaySelectedInnerBorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BlackoutStrikethroughBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().BlackoutStrikethroughBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BlackoutStrikethroughBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BlackoutStrikethroughBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BlackoutBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().BlackoutBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BlackoutBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BlackoutBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemHoverBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemHoverBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemHoverBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemHoverBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemPressedBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemPressedBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemPressedBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemPressedBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemDisabledBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().CalendarItemDisabledBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemDisabledBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemDisabledBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().TodayBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TodayBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayBlackoutBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().TodayBlackoutBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TodayBlackoutBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayBlackoutBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayHoverBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().TodayHoverBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TodayHoverBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayHoverBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayPressedBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().TodayPressedBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TodayPressedBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayPressedBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayDisabledBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().TodayDisabledBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TodayDisabledBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayDisabledBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayBlackoutForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().TodayBlackoutForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TodayBlackoutForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TodayBlackoutForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedHoverForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().SelectedHoverForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedHoverForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedHoverForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedPressedForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().SelectedPressedForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedPressedForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedPressedForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedDisabledForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().SelectedDisabledForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedDisabledForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedDisabledForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopeHoverForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().OutOfScopeHoverForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OutOfScopeHoverForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OutOfScopeHoverForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopePressedForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().OutOfScopePressedForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OutOfScopePressedForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OutOfScopePressedForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisabledForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().DisabledForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisabledForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisabledForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemMargin(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().DayItemMargin());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayItemMargin(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayItemMargin(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemMargin(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().MonthYearItemMargin());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthYearItemMargin(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthYearItemMargin(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelMargin(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().FirstOfMonthLabelMargin());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfMonthLabelMargin(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfMonthLabelMargin(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelMargin(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().FirstOfYearDecadeLabelMargin());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FirstOfYearDecadeLabelMargin(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FirstOfYearDecadeLabelMargin(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemCornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::CornerRadius>(this->shim().CalendarItemCornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarItemCornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarItemCornerRadius(*reinterpret_cast<winrt::Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem>
    {
        int32_t __stdcall get_IsBlackout(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsBlackout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsBlackout(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsBlackout(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Date(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().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetDensityColors(void* colors) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDensityColors(*reinterpret_cast<winrt::Windows::Foundation::Collections::IIterable<winrt::Windows::UI::Color> const*>(&colors));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs>
    {
        int32_t __stdcall get_InRecycleQueue(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().InRecycleQueue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItem>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Phase(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<uint32_t>(this->shim().Phase());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RegisterUpdateCallback(void* callback) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarView, winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const*>(&callback));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RegisterUpdateCallbackWithPhase(uint32_t callbackPhase, void* callback) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(callbackPhase, *reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CalendarView, winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> const*>(&callback));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics>
    {
        int32_t __stdcall get_IsBlackoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsBlackoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::CalendarView>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs>
    {
        int32_t __stdcall get_AddedDates(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::Foundation::DateTime>>(this->shim().AddedDates());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RemovedDates(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::Foundation::DateTime>>(this->shim().RemovedDates());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics>
    {
        int32_t __stdcall get_CalendarIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayOfWeekFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DayOfWeekFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupLabelVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupLabelVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstDayOfWeekProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstDayOfWeekProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOutOfScopeEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsOutOfScopeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTodayHighlightedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTodayHighlightedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinDateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NumberOfWeeksInViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().NumberOfWeeksInViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedDatesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedDatesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettingsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateSettingsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FocusBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedHoverBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedHoverBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedPressedBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedPressedBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HoverBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HoverBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PressedBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PressedBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopeBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OutOfScopeBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PressedForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PressedForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TodayForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BlackoutForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BlackoutForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopeForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OutOfScopeForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemFontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayFontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TodayFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelFontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemFontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelFontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelFontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalDayItemAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalDayItemAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalDayItemAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalDayItemAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalFirstOfMonthLabelAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalFirstOfMonthLabelAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalFirstOfMonthLabelAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalFirstOfMonthLabelAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemBorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemBorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarViewDayItemStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarViewDayItemStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2>
    {
        int32_t __stdcall get_SelectedDisabledBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedDisabledBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodaySelectedInnerBorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TodaySelectedInnerBorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BlackoutStrikethroughBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BlackoutStrikethroughBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BlackoutBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BlackoutBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemHoverBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemHoverBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemPressedBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemPressedBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemDisabledBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemDisabledBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TodayBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayBlackoutBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TodayBlackoutBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayHoverBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TodayHoverBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayPressedBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TodayPressedBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayDisabledBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TodayDisabledBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TodayBlackoutForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TodayBlackoutForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedHoverForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedHoverForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedPressedForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedPressedForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedDisabledForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedDisabledForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopeHoverForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OutOfScopeHoverForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OutOfScopePressedForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OutOfScopePressedForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisabledForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayItemMarginProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DayItemMarginProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthYearItemMarginProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MonthYearItemMarginProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfMonthLabelMarginProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfMonthLabelMarginProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstOfYearDecadeLabelMarginProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FirstOfYearDecadeLabelMarginProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarItemCornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarItemCornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs>
    {
        int32_t __stdcall get_Bounds(winrt::Windows::Foundation::Rect* value) noexcept final try
        {
            zero_abi<winrt::Windows::Foundation::Rect>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Rect>(this->shim().Bounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICanvas> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICanvas>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICanvasFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICanvasFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::Canvas>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICanvasStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICanvasStatics>
    {
        int32_t __stdcall get_LeftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetLeft(void* element, double* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<double>(this->shim().GetLeft(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetLeft(void* element, double length) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLeft(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), length);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TopProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetTop(void* element, double* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<double>(this->shim().GetTop(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetTop(void* element, double length) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetTop(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), length);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ZIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetZIndex(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetZIndex(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetZIndex(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetZIndex(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICaptureElement> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICaptureElement>
    {
        int32_t __stdcall get_Source(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Media::Capture::MediaCapture>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<winrt::Windows::Media::Capture::MediaCapture const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics>
    {
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICheckBox> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICheckBox>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICheckBoxFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICheckBoxFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::CheckBox>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs>
    {
        int32_t __stdcall get_GroupHeaderContainer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ListViewBaseHeaderItem>(this->shim().GroupHeaderContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupHeaderContainer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupHeaderContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ListViewBaseHeaderItem const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().GroupIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Group(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Group());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs>
    {
        int32_t __stdcall get_ItemIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().ItemIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem>(this->shim().ItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsContainerPrepared(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContainerPrepared());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsContainerPrepared(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsContainerPrepared(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs>
    {
        int32_t __stdcall get_Value(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Value());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UIElement(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().UIElement());
            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<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs>
    {
        int32_t __stdcall get_OldColor(struct struct_Windows_UI_Color* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Color>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Color>(this->shim().OldColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewColor(struct struct_Windows_UI_Color* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Color>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Color>(this->shim().NewColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IColorPicker> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IColorPicker>
    {
        int32_t __stdcall get_Color(struct struct_Windows_UI_Color* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Color>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Color>(this->shim().Color());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Color(struct struct_Windows_UI_Color value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Color(*reinterpret_cast<winrt::Windows::UI::Color const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreviousColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<winrt::Windows::UI::Color>>(this->shim().PreviousColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PreviousColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreviousColor(*reinterpret_cast<winrt::Windows::Foundation::IReference<winrt::Windows::UI::Color> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsAlphaEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsAlphaEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsAlphaEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorSpectrumVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorSpectrumVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorSpectrumVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorSpectrumVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorPreviewVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorPreviewVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorPreviewVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorPreviewVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorSliderVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorSliderVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorSliderVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorSliderVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaSliderVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsAlphaSliderVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsAlphaSliderVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsAlphaSliderVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsMoreButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsMoreButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsMoreButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsMoreButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorChannelTextInputVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorChannelTextInputVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorChannelTextInputVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorChannelTextInputVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaTextInputVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsAlphaTextInputVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsAlphaTextInputVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsAlphaTextInputVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHexInputVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHexInputVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHexInputVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHexInputVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinHue(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinHue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinHue(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinHue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHue(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxHue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxHue(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxHue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinSaturation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinSaturation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinSaturation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinSaturation(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxSaturation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxSaturation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxSaturation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxSaturation(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinValue(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinValue(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxValue(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxValue(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColorSpectrumShape(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ColorSpectrumShape>(this->shim().ColorSpectrumShape());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ColorSpectrumShape(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColorSpectrumShape(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ColorSpectrumShape const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColorSpectrumComponents(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ColorSpectrumComponents>(this->shim().ColorSpectrumComponents());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ColorSpectrumComponents(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColorSpectrumComponents(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ColorSpectrumComponents const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ColorChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ColorChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ColorPicker, winrt::Windows::UI::Xaml::Controls::ColorChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ColorChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColorChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IColorPickerFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IColorPickerFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ColorPicker>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IColorPickerStatics>
    {
        int32_t __stdcall get_ColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreviousColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PreviousColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorSpectrumVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorSpectrumVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorPreviewVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorPreviewVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorSliderVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorSliderVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaSliderVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaSliderVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsMoreButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsMoreButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorChannelTextInputVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorChannelTextInputVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAlphaTextInputVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsAlphaTextInputVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHexInputVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsHexInputVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinHueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinHueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinSaturationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinSaturationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxSaturationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxSaturationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColorSpectrumShapeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ColorSpectrumShapeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColorSpectrumComponentsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ColorSpectrumComponentsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinition> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinition>
    {
        int32_t __stdcall get_Width(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::GridLength>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::GridLength>(this->shim().Width());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Width(struct struct_Windows_UI_Xaml_GridLength value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Width(*reinterpret_cast<winrt::Windows::UI::Xaml::GridLength const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActualWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ActualWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics>
    {
        int32_t __stdcall get_WidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().WidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBox> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBox>
    {
        int32_t __stdcall get_IsDropDownOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDropDownOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDropDownOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDropDownOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsEditable(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsEditable());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSelectionBoxHighlighted(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSelectionBoxHighlighted());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDropDownHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxDropDownHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxDropDownHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxDropDownHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionBoxItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().SelectionBoxItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionBoxItemTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().SelectionBoxItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::ComboBoxTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DropDownClosed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DropDownClosed(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DropDownClosed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DropDownClosed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DropDownOpened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DropDownOpened(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DropDownOpened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DropDownOpened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBox2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBox2>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBox3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBox3>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSearchEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextSearchEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextSearchEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextSearchEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBox4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBox4>
    {
        int32_t __stdcall get_SelectionChangedTrigger(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger>(this->shim().SelectionChangedTrigger());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionChangedTrigger(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChangedTrigger(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ComboBoxSelectionChangedTrigger const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBox5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBox5>
    {
        int32_t __stdcall get_PlaceholderForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().PlaceholderForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBox6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBox6>
    {
        int32_t __stdcall put_IsEditable(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsEditable(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextBoxStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().TextBoxStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextBoxStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextBoxStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            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<winrt::Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_TextSubmitted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextSubmitted(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ComboBox, winrt::Windows::UI::Xaml::Controls::ComboBoxTextSubmittedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextSubmitted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextSubmitted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBoxFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ComboBox>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBoxItem>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBoxItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ComboBoxItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides>
    {
        int32_t __stdcall OnDropDownClosed(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDropDownClosed(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDropDownOpened(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDropDownOpened(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics>
    {
        int32_t __stdcall get_IsDropDownOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsDropDownOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxDropDownHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxDropDownHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSearchEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextSearchEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics4>
    {
        int32_t __stdcall get_SelectionChangedTriggerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionChangedTriggerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics5>
    {
        int32_t __stdcall get_PlaceholderForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6>
    {
        int32_t __stdcall get_IsEditableProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsEditableProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextBoxStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextBoxStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs>
    {
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            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<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBar> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBar>
    {
        int32_t __stdcall get_PrimaryCommands(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().PrimaryCommands());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryCommands(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().SecondaryCommands());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBar2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBar2>
    {
        int32_t __stdcall get_CommandBarOverflowPresenterStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().CommandBarOverflowPresenterStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CommandBarOverflowPresenterStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CommandBarOverflowPresenterStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandBarTemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::CommandBarTemplateSettings>(this->shim().CommandBarTemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBar3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBar3>
    {
        int32_t __stdcall get_DefaultLabelPosition(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition>(this->shim().DefaultLabelPosition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultLabelPosition(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultLabelPosition(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CommandBarDefaultLabelPosition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowButtonVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility>(this->shim().OverflowButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OverflowButtonVisibility(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OverflowButtonVisibility(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CommandBarOverflowButtonVisibility const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDynamicOverflowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDynamicOverflowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDynamicOverflowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDynamicOverflowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DynamicOverflowItemsChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DynamicOverflowItemsChanging(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::CommandBar, winrt::Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DynamicOverflowItemsChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DynamicOverflowItemsChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBarElement> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBarElement>
    {
        int32_t __stdcall get_IsCompact(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompact());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsCompact(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompact(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBarElement2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBarElement2>
    {
        int32_t __stdcall get_IsInOverflow(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsInOverflow());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DynamicOverflowOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().DynamicOverflowOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DynamicOverflowOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DynamicOverflowOrder(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBarFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBarFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::CommandBar>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout>
    {
        int32_t __stdcall get_PrimaryCommands(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().PrimaryCommands());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryCommands(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::UI::Xaml::Controls::ICommandBarElement>>(this->shim().SecondaryCommands());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::CommandBarFlyout>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenter> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenter>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::CommandBarOverflowPresenter>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics>
    {
        int32_t __stdcall get_PrimaryCommandsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryCommandsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryCommandsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryCommandsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics2>
    {
        int32_t __stdcall get_CommandBarOverflowPresenterStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CommandBarOverflowPresenterStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3>
    {
        int32_t __stdcall get_DefaultLabelPositionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultLabelPositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowButtonVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDynamicOverflowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsDynamicOverflowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs>
    {
        int32_t __stdcall get_ItemContainer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem>(this->shim().ItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InRecycleQueue(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().InRecycleQueue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().ItemIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Phase(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<uint32_t>(this->shim().Phase());
            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<bool>(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 RegisterUpdateCallback(void* callback) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const*>(&callback));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RegisterUpdateCallbackWithPhase(uint32_t callbackPhase, void* callback) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterUpdateCallback(callbackPhase, *reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const*>(&callback));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentControl> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentControl>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ContentTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplateSelector(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ContentTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTransitions(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentControl2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentControl2>
    {
        int32_t __stdcall get_ContentTemplateRoot(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().ContentTemplateRoot());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentControlFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ContentControl>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>
    {
        int32_t __stdcall OnContentChanged(void* oldContent, void* newContent) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentChanged(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&newContent));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnContentTemplateChanged(void* oldContentTemplate, void* newContentTemplate) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&oldContentTemplate), *reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&newContentTemplate));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnContentTemplateSelectorChanged(void* oldContentTemplateSelector, void* newContentTemplateSelector) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateSelectorChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&oldContentTemplateSelector), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&newContentTemplateSelector));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentControlStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialog> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>
    {
        int32_t __stdcall get_Title(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Title());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Title(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Title(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TitleTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().TitleTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TitleTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TitleTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FullSizeDesired(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().FullSizeDesired());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FullSizeDesired(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FullSizeDesired(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PrimaryButtonText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PrimaryButtonText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SecondaryButtonText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SecondaryButtonText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonCommand(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Input::ICommand>(this->shim().PrimaryButtonCommand());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PrimaryButtonCommand(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonCommand(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonCommand(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Input::ICommand>(this->shim().SecondaryButtonCommand());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SecondaryButtonCommand(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonCommand(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonCommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().PrimaryButtonCommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PrimaryButtonCommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonCommandParameter(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonCommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().SecondaryButtonCommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SecondaryButtonCommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonCommandParameter(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPrimaryButtonEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPrimaryButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPrimaryButtonEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPrimaryButtonEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSecondaryButtonEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSecondaryButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSecondaryButtonEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSecondaryButtonEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Closing(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closing(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closing(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closing(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Closed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closed(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Opened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opened(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PrimaryButtonClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PrimaryButtonClick(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PrimaryButtonClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SecondaryButtonClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SecondaryButtonClick(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SecondaryButtonClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall Hide() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Hide();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ShowAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::UI::Xaml::Controls::ContentDialogResult>>(this->shim().ShowAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialog2>
    {
        int32_t __stdcall get_CloseButtonText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CloseButtonText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CloseButtonText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonCommand(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Input::ICommand>(this->shim().CloseButtonCommand());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CloseButtonCommand(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonCommand(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonCommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().CloseButtonCommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CloseButtonCommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonCommandParameter(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().PrimaryButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PrimaryButtonStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryButtonStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().SecondaryButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SecondaryButtonStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryButtonStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().CloseButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CloseButtonStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultButton(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ContentDialogButton>(this->shim().DefaultButton());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultButton(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultButton(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ContentDialogButton const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CloseButtonClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CloseButtonClick(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CloseButtonClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CloseButtonClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialog3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialog3>
    {
        int32_t __stdcall ShowAsyncWithPlacement(int32_t placement, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::UI::Xaml::Controls::ContentDialogResult>>(this->shim().ShowAsync(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ContentDialogPlacement const*>(&placement)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral>
    {
        int32_t __stdcall Complete() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Complete();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs>
    {
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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 GetDeferral(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickDeferral>(this->shim().GetDeferral());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs>
    {
        int32_t __stdcall get_Result(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ContentDialogResult>(this->shim().Result());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosingDeferral> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosingDeferral>
    {
        int32_t __stdcall Complete() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Complete();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs>
    {
        int32_t __stdcall get_Result(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ContentDialogResult>(this->shim().Result());
            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<bool>(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 GetDeferral(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::ContentDialogClosingDeferral>(this->shim().GetDeferral());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialogFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialogFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ContentDialog>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialogOpenedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialogOpenedEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics>
    {
        int32_t __stdcall get_TitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TitleTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TitleTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FullSizeDesiredProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FullSizeDesiredProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonCommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonCommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonCommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonCommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonCommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonCommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonCommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonCommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPrimaryButtonEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsPrimaryButtonEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSecondaryButtonEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSecondaryButtonEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2>
    {
        int32_t __stdcall get_CloseButtonTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonCommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonCommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonCommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonCommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PrimaryButtonStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryButtonStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CloseButtonStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CloseButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultButtonProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultButtonProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs>
    {
        int32_t __stdcall get_ChangeKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ContentLinkChangeKind>(this->shim().ChangeKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentLinkInfo(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::ContentLinkInfo>(this->shim().ContentLinkInfo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextRange(struct struct_Windows_UI_Xaml_Documents_TextRange* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Documents::TextRange>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::TextRange>(this->shim().TextRange());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ContentTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplateSelector(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ContentTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTransitions(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<winrt::Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<winrt::Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<winrt::Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterSpacing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter2>
    {
        int32_t __stdcall get_OpticalMarginAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OpticalMarginAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpticalMarginAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBounds(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextLineBounds(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextLineBounds(*reinterpret_cast<winrt::Windows::UI::Xaml::TextLineBounds const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter4>
    {
        int32_t __stdcall get_TextWrapping(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextWrapping(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<winrt::Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLines(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLines(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategy(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineStackingStrategy(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineStackingStrategy(*reinterpret_cast<winrt::Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().LineHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<winrt::Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Background(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Background(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalContentAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalContentAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalContentAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalContentAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalContentAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalContentAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter5>
    {
        int32_t __stdcall get_BackgroundTransition(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::BrushTransition>(this->shim().BackgroundTransition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundTransition(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundTransition(*reinterpret_cast<winrt::Windows::UI::Xaml::BrushTransition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ContentPresenter>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides>
    {
        int32_t __stdcall OnContentTemplateChanged(void* oldContentTemplate, void* newContentTemplate) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&oldContentTemplate), *reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&newContentTemplate));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnContentTemplateSelectorChanged(void* oldContentTemplateSelector, void* newContentTemplateSelector) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplateSelectorChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&oldContentTemplateSelector), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&newContentTemplateSelector));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2>
    {
        int32_t __stdcall get_OpticalMarginAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBoundsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextLineBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4>
    {
        int32_t __stdcall get_TextWrappingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLinesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalContentAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalContentAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalContentAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalContentAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics5>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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_CursorLeft(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CursorLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CursorTop(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CursorTop());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControl> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControl>
    {
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<winrt::Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<winrt::Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<winrt::Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterSpacing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTabStop(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTabStop());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTabStop(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTabStop(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TabIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().TabIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TabIndex(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TabIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TabNavigation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Input::KeyboardNavigationMode>(this->shim().TabNavigation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TabNavigation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TabNavigation(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::KeyboardNavigationMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Template(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ControlTemplate>(this->shim().Template());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Template(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Template(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ControlTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalContentAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalContentAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalContentAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalContentAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalContentAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalContentAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalContentAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Background(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Background(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusState(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::FocusState>(this->shim().FocusState());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsEnabledChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsEnabledChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyPropertyChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsEnabledChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsEnabledChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ApplyTemplate(bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().ApplyTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Focus(int32_t value, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Focus(*reinterpret_cast<winrt::Windows::UI::Xaml::FocusState const*>(&value)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControl2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControl2>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControl3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControl3>
    {
        int32_t __stdcall get_UseSystemFocusVisuals(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().UseSystemFocusVisuals());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UseSystemFocusVisuals(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UseSystemFocusVisuals(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControl4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControl4>
    {
        int32_t __stdcall get_IsFocusEngagementEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFocusEngagementEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFocusEngagementEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFocusEngagementEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFocusEngaged(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFocusEngaged());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFocusEngaged(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFocusEngaged(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RequiresPointer(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RequiresPointer>(this->shim().RequiresPointer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RequiresPointer(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RequiresPointer(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::RequiresPointer const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusLeft(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusLeft(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusLeft(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusRight(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusRight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusRight(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusRight(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusUp(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusUp());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusUp(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusUp(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusDown(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusDown());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusDown(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusDown(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ElementSoundMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::ElementSoundMode>(this->shim().ElementSoundMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ElementSoundMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ElementSoundMode(*reinterpret_cast<winrt::Windows::UI::Xaml::ElementSoundMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_FocusEngaged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FocusEngaged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::Controls::FocusEngagedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FocusEngaged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusEngaged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_FocusDisengaged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FocusDisengaged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FocusDisengaged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusDisengaged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall RemoveFocusEngagement() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveFocusEngagement();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControl5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControl5>
    {
        int32_t __stdcall get_DefaultStyleResourceUri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().DefaultStyleResourceUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultStyleResourceUri(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultStyleResourceUri(*reinterpret_cast<winrt::Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControl7> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControl7>
    {
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<winrt::Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControlFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControlFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::Control>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>
    {
        int32_t __stdcall OnPointerEntered(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerEntered(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerPressed(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerPressed(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerMoved(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerMoved(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerReleased(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerReleased(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerExited(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerExited(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerCaptureLost(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerCaptureLost(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerCanceled(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerCanceled(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPointerWheelChanged(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPointerWheelChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnTapped(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnTapped(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::TappedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDoubleTapped(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDoubleTapped(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnHolding(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnHolding(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::HoldingRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnRightTapped(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnRightTapped(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnManipulationStarting(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationStarting(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnManipulationInertiaStarting(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationInertiaStarting(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnManipulationStarted(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationStarted(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnManipulationDelta(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationDelta(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnManipulationCompleted(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnManipulationCompleted(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnKeyUp(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnKeyUp(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnKeyDown(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnKeyDown(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnGotFocus(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnGotFocus(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnLostFocus(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnLostFocus(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDragEnter(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDragEnter(*reinterpret_cast<winrt::Windows::UI::Xaml::DragEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDragLeave(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDragLeave(*reinterpret_cast<winrt::Windows::UI::Xaml::DragEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDragOver(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDragOver(*reinterpret_cast<winrt::Windows::UI::Xaml::DragEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnDrop(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnDrop(*reinterpret_cast<winrt::Windows::UI::Xaml::DragEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>
    {
        int32_t __stdcall OnPreviewKeyDown(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPreviewKeyDown(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnPreviewKeyUp(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnPreviewKeyUp(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnCharacterReceived(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnCharacterReceived(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControlProtected> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>
    {
        int32_t __stdcall get_DefaultStyleKey(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().DefaultStyleKey());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultStyleKey(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultStyleKey(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetTemplateChild(void* childName, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().GetTemplateChild(*reinterpret_cast<hstring const*>(&childName)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControlStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControlStatics>
    {
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTabStopProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTabStopProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TabIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TabIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TabNavigationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TabNavigationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalContentAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalContentAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalContentAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalContentAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultStyleKeyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultStyleKeyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusStateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FocusStateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControlStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControlStatics2>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControlStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControlStatics3>
    {
        int32_t __stdcall get_UseSystemFocusVisualsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().UseSystemFocusVisualsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTemplateFocusTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTemplateFocusTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsTemplateFocusTarget(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsTemplateFocusTarget(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsTemplateFocusTarget(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsTemplateFocusTarget(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControlStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControlStatics4>
    {
        int32_t __stdcall get_IsFocusEngagementEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsFocusEngagementEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFocusEngagedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsFocusEngagedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RequiresPointerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RequiresPointerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusLeftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusLeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusRightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusRightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusUpProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusUpProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusDownProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusDownProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ElementSoundModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ElementSoundModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControlStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControlStatics5>
    {
        int32_t __stdcall get_DefaultStyleResourceUriProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultStyleResourceUriProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTemplateKeyTipTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTemplateKeyTipTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsTemplateKeyTipTarget(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsTemplateKeyTipTarget(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsTemplateKeyTipTarget(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsTemplateKeyTipTarget(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControlStatics7> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControlStatics7>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IControlTemplate> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IControlTemplate>
    {
        int32_t __stdcall get_TargetType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Interop::TypeName>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Interop::TypeName>(this->shim().TargetType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TargetType(struct struct_Windows_UI_Xaml_Interop_TypeName value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TargetType(*reinterpret_cast<winrt::Windows::UI::Xaml::Interop::TypeName const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector>
    {
        int32_t __stdcall SelectTemplate(void* item, void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().SelectTemplate(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector2>
    {
        int32_t __stdcall SelectTemplateForItem(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().SelectTemplate(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>
    {
        int32_t __stdcall SelectTemplateCore(void* item, void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().SelectTemplateCore(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>
    {
        int32_t __stdcall SelectTemplateForItemCore(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().SelectTemplateCore(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs>
    {
        int32_t __stdcall get_OldDate(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().OldDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewDate(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().NewDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePicker> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePicker>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Date(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().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Date(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Date(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().DayVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MonthVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().YearVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_YearVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().MonthFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().YearFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_YearFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinYear(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().MinYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinYear(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinYear(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxYear(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().MaxYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxYear(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxYear(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DateChanged(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePicker2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePicker2>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePicker3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePicker3>
    {
        int32_t __stdcall get_SelectedDate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>>(this->shim().SelectedDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedDate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedDate(*reinterpret_cast<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectedDateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectedDateChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::DatePicker, winrt::Windows::UI::Xaml::Controls::DatePickerSelectedValueChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectedDateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedDateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::DatePicker>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout>
    {
        int32_t __stdcall get_CalendarIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CalendarIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CalendarIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CalendarIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Date(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().Date());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Date(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Date(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().DayVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MonthVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().YearVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_YearVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinYear(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().MinYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinYear(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinYear(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxYear(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().MaxYear());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxYear(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxYear(*reinterpret_cast<winrt::Windows::Foundation::DateTime const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DatePicked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DatePicked(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::DatePickerFlyout, winrt::Windows::UI::Xaml::Controls::DatePickedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DatePicked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DatePicked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ShowAtAsync(void* target, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>>>(this->shim().ShowAtAsync(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2>
    {
        int32_t __stdcall get_DayFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DayFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DayFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DayFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().MonthFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MonthFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MonthFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearFormat(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().YearFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_YearFormat(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().YearFormat(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem>
    {
        int32_t __stdcall get_PrimaryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PrimaryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PrimaryText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrimaryText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SecondaryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SecondaryText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SecondaryText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics>
    {
        int32_t __stdcall get_PrimaryTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PrimaryTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SecondaryTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SecondaryTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDefaultShadowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDefaultShadowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDefaultShadowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsDefaultShadowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics>
    {
        int32_t __stdcall get_CalendarIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DayVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MonthVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().YearVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinYearProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinYearProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxYearProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxYearProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2>
    {
        int32_t __stdcall get_DayFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DayFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MonthFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().YearFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs>
    {
        int32_t __stdcall get_OldDate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>>(this->shim().OldDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewDate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::DateTime>>(this->shim().NewDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CalendarIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CalendarIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DayVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MonthVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().YearVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DayFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DayFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MonthFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MonthFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_YearFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().YearFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinYearProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinYearProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxYearProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxYearProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics2>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerStatics3>
    {
        int32_t __stdcall get_SelectedDateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedDateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs>
    {
        int32_t __stdcall get_OldDate(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().OldDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewDate(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().NewDate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs>
    {
        int32_t __stdcall get_Items(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::Foundation::IInspectable>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DropResult(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::ApplicationModel::DataTransfer::DataPackageOperation>(this->shim().DropResult());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs>
    {
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Data(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::ApplicationModel::DataTransfer::DataPackage>(this->shim().Data());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDropDownButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDropDownButton>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeer> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeer>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory>
    {
        int32_t __stdcall CreateInstance(void* owner, 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<winrt::Windows::UI::Xaml::Controls::DropDownButtonAutomationPeer>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DropDownButton const*>(&owner), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDropDownButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDropDownButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::DropDownButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs>
    {
        int32_t __stdcall get_Action(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CommandBarDynamicOverflowAction>(this->shim().Action());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlipView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlipView>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlipView2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlipView2>
    {
        int32_t __stdcall get_UseTouchAnimationsForAllNavigation(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().UseTouchAnimationsForAllNavigation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UseTouchAnimationsForAllNavigation(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UseTouchAnimationsForAllNavigation(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlipViewFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlipViewFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::FlipView>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlipViewItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlipViewItem>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlipViewItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlipViewItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::FlipViewItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlipViewStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlipViewStatics2>
    {
        int32_t __stdcall get_UseTouchAnimationsForAllNavigationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().UseTouchAnimationsForAllNavigationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlyout>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FlyoutPresenterStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().FlyoutPresenterStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FlyoutPresenterStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FlyoutPresenterStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlyoutFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlyoutFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::Flyout>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDefaultShadowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDefaultShadowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDefaultShadowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::FlyoutPresenter>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsDefaultShadowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFlyoutStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFlyoutStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FlyoutPresenterStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FlyoutPresenterStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFocusDisengagedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFocusDisengagedEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFontIcon> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFontIcon>
    {
        int32_t __stdcall get_Glyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Glyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Glyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<winrt::Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<winrt::Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFontIcon2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFontIcon2>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFontIcon3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFontIcon3>
    {
        int32_t __stdcall get_MirroredWhenRightToLeft(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MirroredWhenRightToLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MirroredWhenRightToLeft(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MirroredWhenRightToLeft(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFontIconFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFontIconFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::FontIcon>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource>
    {
        int32_t __stdcall get_Glyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Glyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Glyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<winrt::Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<winrt::Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MirroredWhenRightToLeft(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().MirroredWhenRightToLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MirroredWhenRightToLeft(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MirroredWhenRightToLeft(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::FontIconSource>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics>
    {
        int32_t __stdcall get_GlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MirroredWhenRightToLeftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MirroredWhenRightToLeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics>
    {
        int32_t __stdcall get_GlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics2>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFontIconStatics3>
    {
        int32_t __stdcall get_MirroredWhenRightToLeftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MirroredWhenRightToLeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFrame> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFrame>
    {
        int32_t __stdcall get_CacheSize(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CacheSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CacheSize(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CacheSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoBack(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoBack());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoForward(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoForward());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CurrentSourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Interop::TypeName>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Interop::TypeName>(this->shim().CurrentSourcePageType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Interop::TypeName>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Interop::TypeName>(this->shim().SourcePageType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SourcePageType(struct struct_Windows_UI_Xaml_Interop_TypeName value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SourcePageType(*reinterpret_cast<winrt::Windows::UI::Xaml::Interop::TypeName const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackStackDepth(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().BackStackDepth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Navigated(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Navigated(*reinterpret_cast<winrt::Windows::UI::Xaml::Navigation::NavigatedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Navigated(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Navigated(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Navigating(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Navigating(*reinterpret_cast<winrt::Windows::UI::Xaml::Navigation::NavigatingCancelEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Navigating(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Navigating(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_NavigationFailed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NavigationFailed(*reinterpret_cast<winrt::Windows::UI::Xaml::Navigation::NavigationFailedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NavigationFailed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationFailed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_NavigationStopped(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NavigationStopped(*reinterpret_cast<winrt::Windows::UI::Xaml::Navigation::NavigationStoppedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NavigationStopped(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationStopped(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall GoBack() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoBack();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GoForward() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoForward();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Navigate(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, void* parameter, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Navigate(*reinterpret_cast<winrt::Windows::UI::Xaml::Interop::TypeName const*>(&sourcePageType), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&parameter)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetNavigationState(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetNavigationState());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetNavigationState(void* navigationState) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetNavigationState(*reinterpret_cast<hstring const*>(&navigationState));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFrame2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFrame2>
    {
        int32_t __stdcall get_BackStack(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Navigation::PageStackEntry>>(this->shim().BackStack());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForwardStack(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Navigation::PageStackEntry>>(this->shim().ForwardStack());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Navigate(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, void* parameter, void* infoOverride, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Navigate(*reinterpret_cast<winrt::Windows::UI::Xaml::Interop::TypeName const*>(&sourcePageType), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&parameter), *reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const*>(&infoOverride)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFrame3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFrame3>
    {
        int32_t __stdcall GoBack(void* transitionInfoOverride) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoBack(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo const*>(&transitionInfoOverride));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFrame4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFrame4>
    {
        int32_t __stdcall SetNavigationStateWithNavigationControl(void* navigationState, bool suppressNavigate) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetNavigationState(*reinterpret_cast<hstring const*>(&navigationState), suppressNavigate);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFrame5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFrame5>
    {
        int32_t __stdcall get_IsNavigationStackEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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 NavigateToType(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, void* parameter, void* navigationOptions, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().NavigateToType(*reinterpret_cast<winrt::Windows::UI::Xaml::Interop::TypeName const*>(&sourcePageType), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&parameter), *reinterpret_cast<winrt::Windows::UI::Xaml::Navigation::FrameNavigationOptions const*>(&navigationOptions)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFrameFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFrameFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::Frame>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics>
    {
        int32_t __stdcall get_CacheSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CacheSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoBackProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoBackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoForwardProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoForwardProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CurrentSourcePageTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CurrentSourcePageTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourcePageTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SourcePageTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackStackDepthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackStackDepthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics2>
    {
        int32_t __stdcall get_BackStackProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackStackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForwardStackProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ForwardStackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IFrameStatics5>
    {
        int32_t __stdcall get_IsNavigationStackEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsNavigationStackEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGrid> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGrid>
    {
        int32_t __stdcall get_RowDefinitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RowDefinitionCollection>(this->shim().RowDefinitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnDefinitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ColumnDefinitionCollection>(this->shim().ColumnDefinitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGrid2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGrid2>
    {
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<winrt::Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGrid3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGrid3>
    {
        int32_t __stdcall get_RowSpacing(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().RowSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RowSpacing(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RowSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnSpacing(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ColumnSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ColumnSpacing(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ColumnSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGrid4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGrid4>
    {
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGridFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGridFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::Grid>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGridStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGridStatics>
    {
        int32_t __stdcall get_RowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetRow(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetRow(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetRow(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRow(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetColumn(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetColumn(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetColumn(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetColumn(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RowSpanProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetRowSpan(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetRowSpan(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetRowSpan(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRowSpan(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnSpanProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetColumnSpan(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetColumnSpan(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetColumnSpan(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetColumnSpan(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGridStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGridStatics2>
    {
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGridStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGridStatics3>
    {
        int32_t __stdcall get_RowSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGridStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGridStatics4>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGridView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGridView>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGridViewFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGridViewFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::GridView>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItem>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::GridViewHeaderItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGridViewItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGridViewItem>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::GridViewItemTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGridViewItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGridViewItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::GridViewItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGroupItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGroupItem>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGroupItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGroupItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::GroupItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle>
    {
        int32_t __stdcall get_Panel(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ItemsPanelTemplate>(this->shim().Panel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Panel(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Panel(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ItemsPanelTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContainerStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().ContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContainerStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainerStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContainerStyleSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::StyleSelector>(this->shim().ContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContainerStyleSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainerStyleSelector(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().HeaderTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplateSelector(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HidesIfEmpty(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HidesIfEmpty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HidesIfEmpty(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HidesIfEmpty(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle2>
    {
        int32_t __stdcall get_HeaderContainerStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().HeaderContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderContainerStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderContainerStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::GroupStyle>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelector> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelector>
    {
        int32_t __stdcall SelectGroupStyle(void* group, uint32_t level, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::GroupStyle>(this->shim().SelectGroupStyle(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&group), level));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::GroupStyleSelector>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides>
    {
        int32_t __stdcall SelectGroupStyleCore(void* group, uint32_t level, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::GroupStyle>(this->shim().SelectGroupStyleCore(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&group), level));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHandwritingPanelClosedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHandwritingPanelClosedEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHandwritingPanelOpenedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHandwritingPanelOpenedEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView>
    {
        int32_t __stdcall get_PlacementTarget(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().PlacementTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlacementTarget(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlacementTarget(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment>(this->shim().PlacementAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlacementAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlacementAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::HandwritingPanelPlacementAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AreCandidatesEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreCandidatesEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreCandidatesEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreCandidatesEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Opened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opened(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Closed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closed(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall TryClose(bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().TryClose());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall TryOpen(bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().TryOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView2>
    {
        int32_t __stdcall get_IsSwitchToKeyboardEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSwitchToKeyboardEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSwitchToKeyboardEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSwitchToKeyboardEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCommandBarOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCommandBarOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsCommandBarOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCommandBarOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputDeviceTypes(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Core::CoreInputDeviceTypes>(this->shim().InputDeviceTypes());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_InputDeviceTypes(uint32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InputDeviceTypes(*reinterpret_cast<winrt::Windows::UI::Core::CoreInputDeviceTypes const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CandidatesChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CandidatesChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingViewCandidatesChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CandidatesChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CandidatesChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextSubmitted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextSubmitted(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::HandwritingView, winrt::Windows::UI::Xaml::Controls::HandwritingViewTextSubmittedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextSubmitted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextSubmitted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall GetCandidates(uint32_t candidatesSessionId, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::Collections::IVectorView<hstring>>(this->shim().GetCandidates(candidatesSessionId));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SelectCandidate(uint32_t candidatesSessionId, uint32_t selectedCandidateIndex) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectCandidate(candidatesSessionId, selectedCandidateIndex);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewCandidatesChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewCandidatesChangedEventArgs>
    {
        int32_t __stdcall get_CandidatesSessionId(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<uint32_t>(this->shim().CandidatesSessionId());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::HandwritingView>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics>
    {
        int32_t __stdcall get_PlacementTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AreCandidatesEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AreCandidatesEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics2>
    {
        int32_t __stdcall get_IsSwitchToKeyboardEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSwitchToKeyboardEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCommandBarOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsCommandBarOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewTextSubmittedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHandwritingViewTextSubmittedEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHub> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHub>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultSectionIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().DefaultSectionIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultSectionIndex(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultSectionIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Sections(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::HubSection>>(this->shim().Sections());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SectionsInView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::HubSection>>(this->shim().SectionsInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SectionHeaders(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::Foundation::IInspectable>>(this->shim().SectionHeaders());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SectionHeaderClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SectionHeaderClick(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::HubSectionHeaderClickEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SectionHeaderClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SectionHeaderClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SectionsInViewChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SectionsInViewChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SectionsInViewChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SectionsInViewChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SectionsInViewChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ScrollToSection(void* section) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollToSection(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::HubSection const*>(&section));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHubFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHubFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::Hub>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHubSection> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHubSection>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().ContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHeaderInteractive(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHeaderInteractive());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHeaderInteractive(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHeaderInteractive(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHubSectionFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHubSectionFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::HubSection>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs>
    {
        int32_t __stdcall get_Section(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::HubSection>(this->shim().Section());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHubSectionStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHubSectionStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHeaderInteractiveProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsHeaderInteractiveProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHubStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHubStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultSectionIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultSectionIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SemanticZoomOwnerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SemanticZoomOwnerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsActiveViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsActiveViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomedInViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomedInViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHyperlinkButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHyperlinkButton>
    {
        int32_t __stdcall get_NavigateUri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().NavigateUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_NavigateUri(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateUri(*reinterpret_cast<winrt::Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::HyperlinkButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonStatics>
    {
        int32_t __stdcall get_NavigateUriProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().NavigateUriProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IIconElement> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IIconElement>
    {
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IIconElementFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IIconElementFactory>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IIconElementStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IIconElementStatics>
    {
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IIconSource> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IIconSource>
    {
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IIconSourceElement> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IIconSourceElement>
    {
        int32_t __stdcall get_IconSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::IconSource>(this->shim().IconSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IconSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IconSource(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::IconSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IIconSourceElementFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IIconSourceElementFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::IconSourceElement>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IIconSourceElementStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IIconSourceElementStatics>
    {
        int32_t __stdcall get_IconSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IconSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IIconSourceFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IIconSourceFactory>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IIconSourceStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IIconSourceStatics>
    {
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IImage> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IImage>
    {
        int32_t __stdcall get_Source(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NineGrid(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().NineGrid());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_NineGrid(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NineGrid(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Media::PlayTo::PlayToSource>(this->shim().PlayToSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ImageFailed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ImageFailed(*reinterpret_cast<winrt::Windows::UI::Xaml::ExceptionRoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ImageFailed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ImageFailed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ImageOpened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ImageOpened(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ImageOpened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ImageOpened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IImage2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IImage2>
    {
        int32_t __stdcall GetAsCastingSource(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Media::Casting::CastingSource>(this->shim().GetAsCastingSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IImage3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IImage3>
    {
        int32_t __stdcall GetAlphaMask(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Composition::CompositionBrush>(this->shim().GetAlphaMask());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IImageStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IImageStatics>
    {
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NineGridProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().NineGridProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlayToSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkCanvas> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkCanvas>
    {
        int32_t __stdcall get_InkPresenter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Input::Inking::InkPresenter>(this->shim().InkPresenter());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkCanvasFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkCanvasFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkCanvas>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar>
    {
        int32_t __stdcall get_InitialControls(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarInitialControls>(this->shim().InitialControls());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_InitialControls(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InitialControls(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::InkToolbarInitialControls const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Children(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyObjectCollection>(this->shim().Children());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActiveTool(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton>(this->shim().ActiveTool());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ActiveTool(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ActiveTool(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InkDrawingAttributes(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Input::Inking::InkDrawingAttributes>(this->shim().InkDrawingAttributes());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRulerButtonChecked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRulerButtonChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsRulerButtonChecked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRulerButtonChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TargetInkCanvas(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkCanvas>(this->shim().TargetInkCanvas());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TargetInkCanvas(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TargetInkCanvas(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::InkCanvas const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ActiveToolChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ActiveToolChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ActiveToolChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ActiveToolChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_InkDrawingAttributesChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().InkDrawingAttributesChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_InkDrawingAttributesChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InkDrawingAttributesChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_EraseAllClicked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().EraseAllClicked(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_EraseAllClicked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().EraseAllClicked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_IsRulerButtonCheckedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsRulerButtonCheckedChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsRulerButtonCheckedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRulerButtonCheckedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall GetToolButton(int32_t tool, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton>(this->shim().GetToolButton(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::InkToolbarTool const*>(&tool)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetToggleButton(int32_t tool, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarToggleButton>(this->shim().GetToggleButton(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::InkToolbarToggle const*>(&tool)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar2>
    {
        int32_t __stdcall get_IsStencilButtonChecked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStencilButtonChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsStencilButtonChecked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStencilButtonChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ButtonFlyoutPlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement>(this->shim().ButtonFlyoutPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ButtonFlyoutPlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ButtonFlyoutPlacement(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::InkToolbarButtonFlyoutPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsStencilButtonCheckedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsStencilButtonCheckedChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbar, winrt::Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsStencilButtonCheckedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStencilButtonCheckedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall GetMenuButton(int32_t menu, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarMenuButton>(this->shim().GetMenuButton(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::InkToolbarMenuKind const*>(&menu)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar3>
    {
        int32_t __stdcall get_TargetInkPresenter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Input::Inking::InkPresenter>(this->shim().TargetInkPresenter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TargetInkPresenter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TargetInkPresenter(*reinterpret_cast<winrt::Windows::UI::Input::Inking::InkPresenter const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButton>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPen> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPen>
    {
        int32_t __stdcall CreateInkDrawingAttributes(void* brush, double strokeWidth, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Input::Inking::InkDrawingAttributes>(this->shim().CreateInkDrawingAttributes(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&brush), strokeWidth));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton>
    {
        int32_t __stdcall get_CustomPen(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPen>(this->shim().CustomPen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CustomPen(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CustomPen(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPen const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ConfigurationContent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().ConfigurationContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ConfigurationContent(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ConfigurationContent(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPenButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics>
    {
        int32_t __stdcall get_CustomPenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CustomPenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ConfigurationContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ConfigurationContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPen>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides>
    {
        int32_t __stdcall CreateInkDrawingAttributesCore(void* brush, double strokeWidth, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Input::Inking::InkDrawingAttributes>(this->shim().CreateInkDrawingAttributesCore(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&brush), strokeWidth));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButton>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton>
    {
        int32_t __stdcall get_ConfigurationContent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().ConfigurationContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ConfigurationContent(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ConfigurationContent(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomToolButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics>
    {
        int32_t __stdcall get_ConfigurationContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ConfigurationContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2>
    {
        int32_t __stdcall get_IsClearAllVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsClearAllVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsClearAllVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsClearAllVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarEraserButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2>
    {
        int32_t __stdcall get_IsClearAllVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsClearAllVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbar>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem>
    {
        int32_t __stdcall get_Kind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind>(this->shim().Kind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Kind(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Kind(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItemKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsChecked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsChecked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Checked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Checked(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Checked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Checked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Unchecked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Unchecked(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItem, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Unchecked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Unchecked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics>
    {
        int32_t __stdcall get_KindProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().KindProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCheckedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsCheckedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButton>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarHighlighterButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs>
    {
        int32_t __stdcall get_StencilButton(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarStencilButton>(this->shim().StencilButton());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StencilKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarStencilKind>(this->shim().StencilKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton>
    {
        int32_t __stdcall get_MenuKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarMenuKind>(this->shim().MenuKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExtensionGlyphShown(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExtensionGlyphShown());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsExtensionGlyphShown(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExtensionGlyphShown(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonFactory>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics>
    {
        int32_t __stdcall get_IsExtensionGlyphShownProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsExtensionGlyphShownProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton>
    {
        int32_t __stdcall get_Palette(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Media::Brush>>(this->shim().Palette());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Palette(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Palette(*reinterpret_cast<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Media::Brush> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinStrokeWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinStrokeWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinStrokeWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinStrokeWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxStrokeWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxStrokeWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxStrokeWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxStrokeWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().SelectedBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBrushIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectedBrushIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedBrushIndex(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedBrushIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedStrokeWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().SelectedStrokeWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedStrokeWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedStrokeWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonFactory>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics>
    {
        int32_t __stdcall get_PaletteProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaletteProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinStrokeWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinStrokeWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxStrokeWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxStrokeWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedBrushIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedBrushIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedStrokeWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedStrokeWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl>
    {
        int32_t __stdcall get_PenButton(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarPenButton>(this->shim().PenButton());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics>
    {
        int32_t __stdcall get_PenButtonProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PenButtonProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButton>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarPencilButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton>
    {
        int32_t __stdcall get_Ruler(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Input::Inking::InkPresenterRuler>(this->shim().Ruler());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarRulerButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics>
    {
        int32_t __stdcall get_RulerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RulerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics>
    {
        int32_t __stdcall get_InitialControlsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().InitialControlsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChildrenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ChildrenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActiveToolProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ActiveToolProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InkDrawingAttributesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().InkDrawingAttributesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRulerButtonCheckedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsRulerButtonCheckedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TargetInkCanvasProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TargetInkCanvasProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2>
    {
        int32_t __stdcall get_IsStencilButtonCheckedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsStencilButtonCheckedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ButtonFlyoutPlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ButtonFlyoutPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics3>
    {
        int32_t __stdcall get_TargetInkPresenterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TargetInkPresenterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton>
    {
        int32_t __stdcall get_Ruler(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Input::Inking::InkPresenterRuler>(this->shim().Ruler());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Protractor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Input::Inking::InkPresenterProtractor>(this->shim().Protractor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedStencil(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarStencilKind>(this->shim().SelectedStencil());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedStencil(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedStencil(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::InkToolbarStencilKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRulerItemVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRulerItemVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsRulerItemVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRulerItemVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsProtractorItemVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsProtractorItemVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsProtractorItemVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsProtractorItemVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::InkToolbarStencilButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics>
    {
        int32_t __stdcall get_RulerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RulerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProtractorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ProtractorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedStencilProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedStencilProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRulerItemVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsRulerItemVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsProtractorItemVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsProtractorItemVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButton>
    {
        int32_t __stdcall get_ToggleKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarToggle>(this->shim().ToggleKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButtonFactory>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton>
    {
        int32_t __stdcall get_ToolKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::InkToolbarTool>(this->shim().ToolKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExtensionGlyphShown(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExtensionGlyphShown());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsExtensionGlyphShown(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExtensionGlyphShown(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonFactory>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics>
    {
        int32_t __stdcall get_IsExtensionGlyphShownProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsExtensionGlyphShownProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IInsertionPanel> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IInsertionPanel>
    {
        int32_t __stdcall GetInsertionIndexes(winrt::Windows::Foundation::Point position, int32_t* first, int32_t* second) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GetInsertionIndexes(*reinterpret_cast<winrt::Windows::Foundation::Point const*>(&position), *first, *second);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IIsTextTrimmedChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IIsTextTrimmedChangedEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemClickEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemClickEventArgs>
    {
        int32_t __stdcall get_ClickedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().ClickedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator>
    {
        int32_t __stdcall add_ItemsChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ItemsChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ItemsChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ItemFromContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().ItemFromContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromItem(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromItem(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall IndexFromContainer(void* container, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().IndexFromContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromIndex(int32_t index, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromIndex(index));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetItemContainerGeneratorForPanel(void* panel, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::ItemContainerGenerator>(this->shim().GetItemContainerGeneratorForPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Panel const*>(&panel)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall StartAt(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t direction, bool allowStartAtRealizedItem) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StartAt(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorDirection const*>(&direction), allowStartAtRealizedItem);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Stop() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stop();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GenerateNext(bool* isNewlyRealized, void** returnValue) noexcept final try
        {
            clear_abi(returnValue);
            typename D::abi_guard guard(this->shim());
            *returnValue = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().GenerateNext(*isNewlyRealized));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PrepareItemContainer(void* container) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrepareItemContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RemoveAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Remove(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t count) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Remove(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position), count);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GeneratorPositionFromIndex(int32_t itemIndex, struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition* result) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition>(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition>(this->shim().GeneratorPositionFromIndex(itemIndex));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall IndexFromGeneratorPosition(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().IndexFromGeneratorPosition(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Recycle(struct struct_Windows_UI_Xaml_Controls_Primitives_GeneratorPosition position, int32_t count) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Recycle(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::GeneratorPosition const*>(&position), count);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping>
    {
        int32_t __stdcall ItemFromContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().ItemFromContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromItem(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromItem(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall IndexFromContainer(void* container, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().IndexFromContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromIndex(int32_t index, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromIndex(index));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControl> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsControl>
    {
        int32_t __stdcall get_ItemsSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsSource(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ItemCollection>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().ItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ItemTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplateSelector(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsPanel(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ItemsPanelTemplate>(this->shim().ItemsPanel());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsPanel(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ItemsPanelTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMemberPath(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DisplayMemberPath());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisplayMemberPath(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMemberPath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().ItemContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::StyleSelector>(this->shim().ItemContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerStyleSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerStyleSelector(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerGenerator(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ItemContainerGenerator>(this->shim().ItemContainerGenerator());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ItemContainerTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerTransitions(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::UI::Xaml::Controls::GroupStyle>>(this->shim().GroupStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupStyleSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::GroupStyleSelector>(this->shim().GroupStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupStyleSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupStyleSelector(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::GroupStyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGrouping(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGrouping());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControl2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsControl2>
    {
        int32_t __stdcall get_ItemsPanelRoot(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Panel>(this->shim().ItemsPanelRoot());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControl3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsControl3>
    {
        int32_t __stdcall GroupHeaderContainerFromItemContainer(void* itemContainer, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().GroupHeaderContainerFromItemContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&itemContainer)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsControlFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ItemsControl>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>
    {
        int32_t __stdcall IsItemItsOwnContainerOverride(void* item, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsItemItsOwnContainerOverride(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetContainerForItemOverride(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().GetContainerForItemOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ClearContainerForItemOverride(void* element, void* item) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClearContainerForItemOverride(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PrepareContainerForItemOverride(void* element, void* item) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrepareContainerForItemOverride(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnItemsChanged(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemsChanged(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnItemContainerStyleChanged(void* oldItemContainerStyle, void* newItemContainerStyle) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemContainerStyleChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&oldItemContainerStyle), *reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&newItemContainerStyle));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnItemContainerStyleSelectorChanged(void* oldItemContainerStyleSelector, void* newItemContainerStyleSelector) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemContainerStyleSelectorChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::StyleSelector const*>(&oldItemContainerStyleSelector), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::StyleSelector const*>(&newItemContainerStyleSelector));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnItemTemplateChanged(void* oldItemTemplate, void* newItemTemplate) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemTemplateChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&oldItemTemplate), *reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&newItemTemplate));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnItemTemplateSelectorChanged(void* oldItemTemplateSelector, void* newItemTemplateSelector) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemTemplateSelectorChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&oldItemTemplateSelector), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&newItemTemplateSelector));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnGroupStyleSelectorChanged(void* oldGroupStyleSelector, void* newGroupStyleSelector) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnGroupStyleSelectorChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::GroupStyleSelector const*>(&oldGroupStyleSelector), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::GroupStyleSelector const*>(&newGroupStyleSelector));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsControlStatics>
    {
        int32_t __stdcall get_ItemsSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMemberPathProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayMemberPathProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupStyleSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GroupStyleSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetItemsOwner(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::ItemsControl>(this->shim().GetItemsOwner(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ItemsControlFromItemContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::ItemsControl>(this->shim().ItemsControlFromItemContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsPanelTemplate> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsPanelTemplate>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs>
    {
        int32_t __stdcall get_AddedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>>(this->shim().AddedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RemovedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>>(this->shim().RemovedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().HeaderTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTransitions(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenter2>
    {
        int32_t __stdcall get_Footer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Footer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Footer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Footer(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().FooterTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FooterTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().FooterTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FooterTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTransitions(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2>
    {
        int32_t __stdcall get_FooterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FooterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel>
    {
        int32_t __stdcall get_GroupPadding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().GroupPadding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupPadding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupPadding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstCacheIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstVisibleIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LastVisibleIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LastCacheIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollingDirection(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::PanelScrollingDirection>(this->shim().ScrollingDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupHeaderPlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement>(this->shim().GroupHeaderPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupHeaderPlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupHeaderPlacement(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsUpdatingScrollMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode>(this->shim().ItemsUpdatingScrollMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsUpdatingScrollMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsUpdatingScrollMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ItemsUpdatingScrollMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CacheLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CacheLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CacheLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CacheLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2>
    {
        int32_t __stdcall get_AreStickyGroupHeadersEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreStickyGroupHeadersEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreStickyGroupHeadersEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreStickyGroupHeadersEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics>
    {
        int32_t __stdcall get_GroupPaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GroupPaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupHeaderPlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GroupHeaderPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CacheLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CacheLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics2>
    {
        int32_t __stdcall get_AreStickyGroupHeadersEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AreStickyGroupHeadersEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid>
    {
        int32_t __stdcall get_GroupPadding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().GroupPadding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupPadding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupPadding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumns(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaximumRowsOrColumns(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaximumRowsOrColumns(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstCacheIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FirstVisibleIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().FirstVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LastVisibleIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastVisibleIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LastCacheIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().LastCacheIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollingDirection(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::PanelScrollingDirection>(this->shim().ScrollingDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupHeaderPlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement>(this->shim().GroupHeaderPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupHeaderPlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupHeaderPlacement(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::GroupHeaderPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CacheLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CacheLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CacheLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CacheLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2>
    {
        int32_t __stdcall get_AreStickyGroupHeadersEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreStickyGroupHeadersEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreStickyGroupHeadersEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreStickyGroupHeadersEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics>
    {
        int32_t __stdcall get_GroupPaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GroupPaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumnsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GroupHeaderPlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GroupHeaderPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CacheLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CacheLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics2>
    {
        int32_t __stdcall get_AreStickyGroupHeadersEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AreStickyGroupHeadersEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListBox> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListBox>
    {
        int32_t __stdcall get_SelectedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ScrollIntoView(void* item) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollIntoView(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListBox2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListBox2>
    {
        int32_t __stdcall get_SingleSelectionFollowsFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SingleSelectionFollowsFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SingleSelectionFollowsFocus(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SingleSelectionFollowsFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListBoxFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListBoxFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ListBox>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListBoxItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListBoxItem>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListBoxItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListBoxItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ListBoxItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListBoxStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListBoxStatics>
    {
        int32_t __stdcall get_SelectionModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListBoxStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListBoxStatics2>
    {
        int32_t __stdcall get_SingleSelectionFollowsFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SingleSelectionFollowsFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyout>
    {
        int32_t __stdcall get_ItemsSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsSource(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().ItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMemberPath(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DisplayMemberPath());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisplayMemberPath(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMemberPath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ListPickerFlyoutSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectedIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedIndex(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedItem(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedItem(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedValue(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().SelectedValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedValue(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedValue(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedValuePath(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedValuePath());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedValuePath(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedValuePath(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ItemsPicked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ItemsPicked(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListPickerFlyout, winrt::Windows::UI::Xaml::Controls::ItemsPickedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ItemsPicked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsPicked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ShowAtAsync(void* target, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Foundation::IInspectable>>>(this->shim().ShowAtAsync(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutPresenter> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutPresenter>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics>
    {
        int32_t __stdcall get_ItemsSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMemberPathProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayMemberPathProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItemProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedValuePathProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedValuePathProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListView>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBase> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBase>
    {
        int32_t __stdcall get_SelectedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>>(this->shim().SelectedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ListViewSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ListViewSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSwipeEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSwipeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSwipeEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSwipeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanDragItems(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanDragItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanDragItems(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanDragItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanReorderItems(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanReorderItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanReorderItems(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanReorderItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsItemClickEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsItemClickEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsItemClickEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsItemClickEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DataFetchSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DataFetchSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DataFetchSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DataFetchSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IncrementalLoadingThreshold(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().IncrementalLoadingThreshold());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IncrementalLoadingThreshold(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IncrementalLoadingThreshold(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IncrementalLoadingTrigger(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::IncrementalLoadingTrigger>(this->shim().IncrementalLoadingTrigger());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IncrementalLoadingTrigger(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IncrementalLoadingTrigger(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::IncrementalLoadingTrigger const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ItemClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ItemClick(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ItemClickEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ItemClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DragItemsStarting(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DragItemsStarting(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DragItemsStartingEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DragItemsStarting(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DragItemsStarting(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ScrollIntoView(void* item) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollIntoView(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall LoadMoreItemsAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::UI::Xaml::Data::LoadMoreItemsResult>>(this->shim().LoadMoreItemsAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ScrollIntoViewWithAlignment(void* item, int32_t alignment) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollIntoView(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ScrollIntoViewAlignment const*>(&alignment));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().HeaderTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTransitions(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBase2>
    {
        int32_t __stdcall get_ShowsScrollingPlaceholders(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowsScrollingPlaceholders());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowsScrollingPlaceholders(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowsScrollingPlaceholders(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ContainerContentChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContainerContentChanging(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContainerContentChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainerContentChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SetDesiredContainerUpdateDuration(int64_t duration) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDesiredContainerUpdateDuration(*reinterpret_cast<winrt::Windows::Foundation::TimeSpan const*>(&duration));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Footer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Footer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Footer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Footer(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().FooterTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FooterTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().FooterTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FooterTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FooterTransitions(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBase3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBase3>
    {
        int32_t __stdcall get_ReorderMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ListViewReorderMode>(this->shim().ReorderMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ReorderMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ReorderMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ListViewReorderMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBase4>
    {
        int32_t __stdcall get_SelectedRanges(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::UI::Xaml::Data::ItemIndexRange>>(this->shim().SelectedRanges());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsMultiSelectCheckBoxEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsMultiSelectCheckBoxEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsMultiSelectCheckBoxEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsMultiSelectCheckBoxEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DragItemsCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DragItemsCompleted(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DragItemsCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DragItemsCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ChoosingItemContainer(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ChoosingItemContainer(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ChoosingItemContainer(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChoosingItemContainer(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ChoosingGroupHeaderContainer(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ChoosingGroupHeaderContainer(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ChoosingGroupHeaderContainer(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChoosingGroupHeaderContainer(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SelectRange(void* itemIndexRange) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectRange(*reinterpret_cast<winrt::Windows::UI::Xaml::Data::ItemIndexRange const*>(&itemIndexRange));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall DeselectRange(void* itemIndexRange) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DeselectRange(*reinterpret_cast<winrt::Windows::UI::Xaml::Data::ItemIndexRange const*>(&itemIndexRange));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBase5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBase5>
    {
        int32_t __stdcall get_SingleSelectionFollowsFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SingleSelectionFollowsFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SingleSelectionFollowsFocus(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SingleSelectionFollowsFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall IsDragSource(bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().IsDragSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBase6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBase6>
    {
        int32_t __stdcall TryStartConnectedAnimationAsync(void* animation, void* item, void* elementName, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<bool>>(this->shim().TryStartConnectedAnimationAsync(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::ConnectedAnimation const*>(&animation), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<hstring const*>(&elementName)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PrepareConnectedAnimation(void* key, void* item, void* elementName, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Media::Animation::ConnectedAnimation>(this->shim().PrepareConnectedAnimation(*reinterpret_cast<hstring const*>(&key), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<hstring const*>(&elementName)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ListViewBase>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItem>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItemFactory>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics>
    {
        int32_t __stdcall get_SelectionModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSwipeEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSwipeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanDragItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanDragItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanReorderItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanReorderItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsItemClickEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsItemClickEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DataFetchSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DataFetchSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IncrementalLoadingThresholdProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IncrementalLoadingThresholdProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IncrementalLoadingTriggerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IncrementalLoadingTriggerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SemanticZoomOwnerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SemanticZoomOwnerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsActiveViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsActiveViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomedInViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomedInViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2>
    {
        int32_t __stdcall get_ShowsScrollingPlaceholdersProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ShowsScrollingPlaceholdersProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FooterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FooterTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FooterTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics3>
    {
        int32_t __stdcall get_ReorderModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ReorderModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics4>
    {
        int32_t __stdcall get_IsMultiSelectCheckBoxEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsMultiSelectCheckBoxEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics5>
    {
        int32_t __stdcall get_SingleSelectionFollowsFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SingleSelectionFollowsFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ListView>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewHeaderItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewHeaderItem>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewHeaderItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewHeaderItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ListViewHeaderItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewItem>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::ListViewItemTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ListViewItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelper> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelper>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics>
    {
        int32_t __stdcall GetRelativeScrollPosition(void* listViewBase, void* itemToKeyHandler, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetRelativeScrollPosition(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ListViewBase const*>(&listViewBase), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ListViewItemToKeyHandler const*>(&itemToKeyHandler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetRelativeScrollPositionAsync(void* listViewBase, void* relativeScrollPosition, void* keyToItemHandler, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncAction>(this->shim().SetRelativeScrollPositionAsync(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ListViewBase const*>(&listViewBase), *reinterpret_cast<hstring const*>(&relativeScrollPosition), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ListViewKeyToItemHandler const*>(&keyToItemHandler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaElement> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaElement>
    {
        int32_t __stdcall get_PosterSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().PosterSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PosterSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PosterSource(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            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<winrt::Windows::Foundation::Uri>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<winrt::Windows::Foundation::Uri const*>(&value));
            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 put_IsMuted(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsMuted(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAudioOnly(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsAudioOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoPlay(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AutoPlay());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AutoPlay(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoPlay(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Volume(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Volume());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Volume(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Volume(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Balance(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Balance());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Balance(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Balance(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalVideoHeight(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().NaturalVideoHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalVideoWidth(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().NaturalVideoWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalDuration(struct struct_Windows_UI_Xaml_Duration* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Duration>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Duration>(this->shim().NaturalDuration());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Position(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().Position());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Position(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Position(*reinterpret_cast<winrt::Windows::Foundation::TimeSpan const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DownloadProgress(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DownloadProgress());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BufferingProgress(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BufferingProgress());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DownloadProgressOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DownloadProgressOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CurrentState(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::MediaElementState>(this->shim().CurrentState());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Markers(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::TimelineMarkerCollection>(this->shim().Markers());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanSeek(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanSeek());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanPause(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanPause());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioStreamCount(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().AudioStreamCount());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioStreamIndex(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<int32_t>>(this->shim().AudioStreamIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AudioStreamIndex(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AudioStreamIndex(*reinterpret_cast<winrt::Windows::Foundation::IReference<int32_t> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaybackRate(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().PlaybackRate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaybackRate(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaybackRate(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsLooping(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsLooping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsLooping(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsLooping(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Media::PlayTo::PlayToSource>(this->shim().PlayToSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultPlaybackRate(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().DefaultPlaybackRate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultPlaybackRate(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultPlaybackRate(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AspectRatioWidth(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().AspectRatioWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AspectRatioHeight(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().AspectRatioHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RealTimePlayback(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().RealTimePlayback());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RealTimePlayback(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RealTimePlayback(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioCategory(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::AudioCategory>(this->shim().AudioCategory());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AudioCategory(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AudioCategory(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::AudioCategory const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioDeviceType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::AudioDeviceType>(this->shim().AudioDeviceType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AudioDeviceType(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AudioDeviceType(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::AudioDeviceType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProtectionManager(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Media::Protection::MediaProtectionManager>(this->shim().ProtectionManager());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ProtectionManager(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ProtectionManager(*reinterpret_cast<winrt::Windows::Media::Protection::MediaProtectionManager const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stereo3DVideoPackingMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Stereo3DVideoPackingMode>(this->shim().Stereo3DVideoPackingMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stereo3DVideoPackingMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stereo3DVideoPackingMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Stereo3DVideoPackingMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stereo3DVideoRenderMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Stereo3DVideoRenderMode>(this->shim().Stereo3DVideoRenderMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stereo3DVideoRenderMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stereo3DVideoRenderMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Stereo3DVideoRenderMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStereo3DVideo(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStereo3DVideo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_MediaOpened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().MediaOpened(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_MediaOpened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaOpened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_MediaEnded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().MediaEnded(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_MediaEnded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaEnded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_MediaFailed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().MediaFailed(*reinterpret_cast<winrt::Windows::UI::Xaml::ExceptionRoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_MediaFailed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaFailed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DownloadProgressChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DownloadProgressChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DownloadProgressChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DownloadProgressChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_BufferingProgressChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().BufferingProgressChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_BufferingProgressChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BufferingProgressChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_CurrentStateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CurrentStateChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CurrentStateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CurrentStateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_MarkerReached(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().MarkerReached(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::TimelineMarkerRoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_MarkerReached(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MarkerReached(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_RateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().RateChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::RateChangedRoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_RateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_VolumeChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().VolumeChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_VolumeChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VolumeChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SeekCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SeekCompleted(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SeekCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SeekCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall Stop() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stop();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Play() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Play();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Pause() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pause();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CanPlayType(void* type, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Media::MediaCanPlayResponse>(this->shim().CanPlayType(*reinterpret_cast<hstring const*>(&type)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetSource(void* stream, void* mimeType) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetSource(*reinterpret_cast<winrt::Windows::Storage::Streams::IRandomAccessStream const*>(&stream), *reinterpret_cast<hstring const*>(&mimeType));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAudioStreamLanguage(void* index, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().GetAudioStreamLanguage(*reinterpret_cast<winrt::Windows::Foundation::IReference<int32_t> const*>(&index)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall AddAudioEffect(void* effectID, bool effectOptional, void* effectConfiguration) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddAudioEffect(*reinterpret_cast<hstring const*>(&effectID), effectOptional, *reinterpret_cast<winrt::Windows::Foundation::Collections::IPropertySet const*>(&effectConfiguration));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall AddVideoEffect(void* effectID, bool effectOptional, void* effectConfiguration) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddVideoEffect(*reinterpret_cast<hstring const*>(&effectID), effectOptional, *reinterpret_cast<winrt::Windows::Foundation::Collections::IPropertySet const*>(&effectConfiguration));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RemoveAllEffects() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveAllEffects();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActualStereo3DVideoPackingMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Stereo3DVideoPackingMode>(this->shim().ActualStereo3DVideoPackingMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaElement2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaElement2>
    {
        int32_t __stdcall get_AreTransportControlsEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreTransportControlsEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreTransportControlsEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreTransportControlsEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindow(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFullWindow(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindow(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetMediaStreamSource(void* source) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetMediaStreamSource(*reinterpret_cast<winrt::Windows::Media::Core::IMediaSource const*>(&source));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToPreferredSourceUri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().PlayToPreferredSourceUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlayToPreferredSourceUri(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlayToPreferredSourceUri(*reinterpret_cast<winrt::Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaElement3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaElement3>
    {
        int32_t __stdcall get_TransportControls(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().TransportControls());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TransportControls(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TransportControls(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::MediaTransportControls const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_PartialMediaFailureDetected(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PartialMediaFailureDetected(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::MediaElement, winrt::Windows::UI::Xaml::Media::PartialMediaFailureDetectedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PartialMediaFailureDetected(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PartialMediaFailureDetected(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SetPlaybackSource(void* source) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetPlaybackSource(*reinterpret_cast<winrt::Windows::Media::Playback::IMediaPlaybackSource const*>(&source));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAsCastingSource(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Media::Casting::CastingSource>(this->shim().GetAsCastingSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics>
    {
        int32_t __stdcall get_PosterSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PosterSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsMutedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsMutedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsAudioOnlyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsAudioOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoPlayProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AutoPlayProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VolumeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VolumeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BalanceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BalanceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalVideoHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalVideoHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalVideoWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalVideoWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NaturalDurationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().NaturalDurationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PositionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PositionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DownloadProgressProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DownloadProgressProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BufferingProgressProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BufferingProgressProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DownloadProgressOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DownloadProgressOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CurrentStateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CurrentStateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanSeekProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanSeekProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanPauseProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanPauseProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioStreamCountProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AudioStreamCountProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioStreamIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AudioStreamIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaybackRateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaybackRateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsLoopingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsLoopingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlayToSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultPlaybackRateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultPlaybackRateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AspectRatioWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AspectRatioWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AspectRatioHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AspectRatioHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RealTimePlaybackProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RealTimePlaybackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioCategoryProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AudioCategoryProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AudioDeviceTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AudioDeviceTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProtectionManagerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ProtectionManagerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stereo3DVideoPackingModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().Stereo3DVideoPackingModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stereo3DVideoRenderModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().Stereo3DVideoRenderModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStereo3DVideoProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsStereo3DVideoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActualStereo3DVideoPackingModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ActualStereo3DVideoPackingModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2>
    {
        int32_t __stdcall get_AreTransportControlsEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AreTransportControlsEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlayToPreferredSourceUriProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlayToPreferredSourceUriProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement>
    {
        int32_t __stdcall get_Source(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Media::Playback::IMediaPlaybackSource>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<winrt::Windows::Media::Playback::IMediaPlaybackSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TransportControls(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().TransportControls());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TransportControls(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TransportControls(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::MediaTransportControls const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AreTransportControlsEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreTransportControlsEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreTransportControlsEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreTransportControlsEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PosterSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().PosterSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PosterSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PosterSource(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoPlay(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AutoPlay());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AutoPlay(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoPlay(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindow(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFullWindow(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindow(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MediaPlayer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Media::Playback::MediaPlayer>(this->shim().MediaPlayer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetMediaPlayer(void* mediaPlayer) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetMediaPlayer(*reinterpret_cast<winrt::Windows::Media::Playback::MediaPlayer const*>(&mediaPlayer));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::MediaPlayerElement>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics>
    {
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AreTransportControlsEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AreTransportControlsEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PosterSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PosterSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoPlayProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AutoPlayProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MediaPlayerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MediaPlayerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter>
    {
        int32_t __stdcall get_MediaPlayer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Media::Playback::MediaPlayer>(this->shim().MediaPlayer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MediaPlayer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MediaPlayer(*reinterpret_cast<winrt::Windows::Media::Playback::MediaPlayer const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindow(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindow());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFullWindow(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindow(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::MediaPlayerPresenter>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics>
    {
        int32_t __stdcall get_MediaPlayerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MediaPlayerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls>
    {
        int32_t __stdcall get_IsFullWindowButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindowButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFullWindowButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindowButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFullWindowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFullWindowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFullWindowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastForwardButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastForwardButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFastForwardButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastForwardButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastForwardEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastForwardEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFastForwardEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastForwardEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastRewindButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastRewindButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFastRewindButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastRewindButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastRewindEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsFastRewindEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsFastRewindEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsFastRewindEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStopButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStopButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsStopButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStopButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStopEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsStopEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsStopEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsStopEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVolumeButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVolumeButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsVolumeButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVolumeButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVolumeEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVolumeEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsVolumeEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVolumeEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPlaybackRateButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPlaybackRateButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPlaybackRateButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPlaybackRateButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPlaybackRateEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPlaybackRateEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPlaybackRateEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPlaybackRateEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSeekBarVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSeekBarVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSeekBarVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSeekBarVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSeekEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSeekEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSeekEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSeekEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompact(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompact());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsCompact(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompact(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2>
    {
        int32_t __stdcall get_IsSkipForwardButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipForwardButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSkipForwardButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipForwardButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipForwardEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipForwardEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSkipForwardEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipForwardEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipBackwardButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipBackwardButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSkipBackwardButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipBackwardButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipBackwardEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSkipBackwardEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSkipBackwardEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSkipBackwardEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsNextTrackButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsNextTrackButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsNextTrackButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsNextTrackButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPreviousTrackButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPreviousTrackButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPreviousTrackButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPreviousTrackButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FastPlayFallbackBehaviour(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::FastPlayFallbackBehaviour>(this->shim().FastPlayFallbackBehaviour());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FastPlayFallbackBehaviour(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FastPlayFallbackBehaviour(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::FastPlayFallbackBehaviour const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ThumbnailRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ThumbnailRequested(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::MediaTransportControls, winrt::Windows::UI::Xaml::Media::MediaTransportControlsThumbnailRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ThumbnailRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ThumbnailRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3>
    {
        int32_t __stdcall get_ShowAndHideAutomatically(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowAndHideAutomatically());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowAndHideAutomatically(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAndHideAutomatically(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRepeatEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRepeatEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsRepeatEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRepeatEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRepeatButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsRepeatButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsRepeatButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsRepeatButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Show() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Show();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Hide() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Hide();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4>
    {
        int32_t __stdcall get_IsCompactOverlayButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompactOverlayButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsCompactOverlayButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompactOverlayButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompactOverlayEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsCompactOverlayEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsCompactOverlayEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCompactOverlayEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::MediaTransportControls>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelper> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelper>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics>
    {
        int32_t __stdcall get_DropoutOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DropoutOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetDropoutOrder(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IReference<int32_t>>(this->shim().GetDropoutOrder(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetDropoutOrder(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetDropoutOrder(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IReference<int32_t> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics>
    {
        int32_t __stdcall get_IsFullWindowButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFullWindowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsFullWindowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastForwardButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastForwardButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastForwardEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastForwardEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastRewindButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastRewindButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsFastRewindEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsFastRewindEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStopButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsStopButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsStopEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsStopEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVolumeButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsVolumeButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVolumeEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsVolumeEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPlaybackRateButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsPlaybackRateButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPlaybackRateEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsPlaybackRateEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSeekBarVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSeekBarVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSeekEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSeekEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2>
    {
        int32_t __stdcall get_IsSkipForwardButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipForwardButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipForwardEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipForwardEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipBackwardButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipBackwardButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSkipBackwardEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSkipBackwardEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsNextTrackButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsNextTrackButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPreviousTrackButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsPreviousTrackButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FastPlayFallbackBehaviourProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FastPlayFallbackBehaviourProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3>
    {
        int32_t __stdcall get_ShowAndHideAutomaticallyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ShowAndHideAutomaticallyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRepeatEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsRepeatEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsRepeatButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsRepeatButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4>
    {
        int32_t __stdcall get_IsCompactOverlayButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactOverlayButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsCompactOverlayEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsCompactOverlayEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuBar> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuBar>
    {
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::MenuBarItem>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuBarFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuBarFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::MenuBar>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItem>
    {
        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 put_Title(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Title(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::MenuBarItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyout>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::MenuBarItemFlyout>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics>
    {
        int32_t __stdcall get_TitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuBarStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuBarStatics>
    {
        int32_t __stdcall get_ItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyout>
    {
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuFlyoutPresenterStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().MenuFlyoutPresenterStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuFlyoutPresenterStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuFlyoutPresenterStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyout2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyout2>
    {
        int32_t __stdcall ShowAt(void* targetElement, winrt::Windows::Foundation::Point point) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowAt(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&targetElement), *reinterpret_cast<winrt::Windows::Foundation::Point const*>(&point));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::MenuFlyout>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem>
    {
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Command(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Input::ICommand>(this->shim().Command());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Command(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Command(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().CommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CommandParameter(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Click(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Click(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Click(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Click(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2>
    {
        int32_t __stdcall get_Icon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Icon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverride(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().KeyboardAcceleratorTextOverride());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_KeyboardAcceleratorTextOverride(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().KeyboardAcceleratorTextOverride(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::MenuFlyoutItemTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBase> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBase>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBaseFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBaseFactory>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics>
    {
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2>
    {
        int32_t __stdcall get_IconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3>
    {
        int32_t __stdcall get_KeyboardAcceleratorTextOverrideProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().KeyboardAcceleratorTextOverrideProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2>
    {
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::MenuFlyoutPresenterTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3>
    {
        int32_t __stdcall get_IsDefaultShadowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDefaultShadowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDefaultShadowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDefaultShadowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::MenuFlyoutPresenter>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3>
    {
        int32_t __stdcall get_IsDefaultShadowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsDefaultShadowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparator> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparator>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::MenuFlyoutSeparator>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutStatics>
    {
        int32_t __stdcall get_MenuFlyoutPresenterStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MenuFlyoutPresenterStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem>
    {
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2>
    {
        int32_t __stdcall get_Icon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Icon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics>
    {
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2>
    {
        int32_t __stdcall get_IconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigate> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigate>
    {
        int32_t __stdcall Navigate(struct struct_Windows_UI_Xaml_Interop_TypeName sourcePageType, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Navigate(*reinterpret_cast<winrt::Windows::UI::Xaml::Interop::TypeName const*>(&sourcePageType)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationView>
    {
        int32_t __stdcall get_IsPaneOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPaneOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPaneOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPaneOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactModeThresholdWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CompactModeThresholdWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CompactModeThresholdWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompactModeThresholdWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExpandedModeThresholdWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExpandedModeThresholdWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ExpandedModeThresholdWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ExpandedModeThresholdWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneFooter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().PaneFooter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneFooter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneFooter(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::NavigationViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSettingsVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSettingsVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSettingsVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSettingsVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneToggleButtonVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPaneToggleButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPaneToggleButtonVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPaneToggleButtonVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlwaysShowHeader(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AlwaysShowHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AlwaysShowHeader(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AlwaysShowHeader(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CompactPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CompactPaneLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompactPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpenPaneLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().OpenPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OpenPaneLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpenPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneToggleButtonStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().PaneToggleButtonStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneToggleButtonStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneToggleButtonStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedItem(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedItem(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>>(this->shim().MenuItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemsSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().MenuItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuItemsSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemsSource(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SettingsItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().SettingsItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoSuggestBox(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox>(this->shim().AutoSuggestBox());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AutoSuggestBox(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AutoSuggestBox(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().MenuItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuItemTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().MenuItemTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuItemTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemTemplateSelector(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemContainerStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().MenuItemContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuItemContainerStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemContainerStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemContainerStyleSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::StyleSelector>(this->shim().MenuItemContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MenuItemContainerStyleSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MenuItemContainerStyleSelector(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MenuItemFromContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().MenuItemFromContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromMenuItem(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromMenuItem(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ItemInvoked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ItemInvoked(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ItemInvoked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemInvoked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DisplayModeChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DisplayModeChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DisplayModeChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayModeChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationView2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationView2>
    {
        int32_t __stdcall get_IsBackButtonVisible(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible>(this->shim().IsBackButtonVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsBackButtonVisible(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsBackButtonVisible(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::NavigationViewBackButtonVisible const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsBackEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsBackEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsBackEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsBackEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneTitle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PaneTitle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneTitle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneTitle(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_BackRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().BackRequested(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_BackRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneClosed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneClosed(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneClosed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneClosing(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneClosing(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneClosing(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosing(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneOpened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneOpened(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneOpened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneOpening(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::NavigationView, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationView3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationView3>
    {
        int32_t __stdcall get_PaneDisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode>(this->shim().PaneDisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneDisplayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneDisplayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::NavigationViewPaneDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().PaneHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneHeader(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneCustomContent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().PaneCustomContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneCustomContent(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneCustomContent(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentOverlay(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().ContentOverlay());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentOverlay(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentOverlay(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPaneVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPaneVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPaneVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFollowsFocus(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus>(this->shim().SelectionFollowsFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFollowsFocus(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFollowsFocus(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::NavigationViewSelectionFollowsFocus const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::NavigationViewTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShoulderNavigationEnabled(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled>(this->shim().ShoulderNavigationEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShoulderNavigationEnabled(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShoulderNavigationEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::NavigationViewShoulderNavigationEnabled const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowLabelMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode>(this->shim().OverflowLabelMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OverflowLabelMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OverflowLabelMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::NavigationViewOverflowLabelMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewBackRequestedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewBackRequestedEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs>
    {
        int32_t __stdcall get_DisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::NavigationViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::NavigationView>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItem>
    {
        int32_t __stdcall get_Icon(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::IconElement>(this->shim().Icon());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Icon(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Icon(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::IconElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CompactPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItem2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItem2>
    {
        int32_t __stdcall get_SelectsOnInvoked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SelectsOnInvoked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectsOnInvoked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectsOnInvoked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemBase> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemBase>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemBaseFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemBaseFactory>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::NavigationViewItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeader> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeader>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::NavigationViewItemHeader>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs>
    {
        int32_t __stdcall get_InvokedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().InvokedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSettingsInvoked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSettingsInvoked());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2>
    {
        int32_t __stdcall get_InvokedItemContainer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::NavigationViewItemBase>(this->shim().InvokedItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RecommendedNavigationTransitionInfo(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo>(this->shim().RecommendedNavigationTransitionInfo());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparator> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparator>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::NavigationViewItemSeparator>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics>
    {
        int32_t __stdcall get_IconProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IconProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CompactPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics2>
    {
        int32_t __stdcall get_SelectsOnInvokedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectsOnInvokedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewList> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewList>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewListFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewListFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::NavigationViewList>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs>
    {
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs>
    {
        int32_t __stdcall get_SelectedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSettingsSelected(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSettingsSelected());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2>
    {
        int32_t __stdcall get_SelectedItemContainer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::NavigationViewItemBase>(this->shim().SelectedItemContainer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RecommendedNavigationTransitionInfo(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::NavigationTransitionInfo>(this->shim().RecommendedNavigationTransitionInfo());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics>
    {
        int32_t __stdcall get_IsPaneOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactModeThresholdWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CompactModeThresholdWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExpandedModeThresholdWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedModeThresholdWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneFooterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaneFooterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSettingsVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSettingsVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneToggleButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneToggleButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlwaysShowHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlwaysShowHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CompactPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpenPaneLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OpenPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneToggleButtonStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaneToggleButtonStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemsSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItemProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SettingsItemProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SettingsItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AutoSuggestBoxProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AutoSuggestBoxProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemTemplateSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemContainerStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemContainerStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MenuItemContainerStyleSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MenuItemContainerStyleSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2>
    {
        int32_t __stdcall get_IsBackButtonVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsBackButtonVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsBackEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsBackEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneTitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaneTitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3>
    {
        int32_t __stdcall get_PaneDisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaneDisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaneHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneCustomContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaneCustomContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentOverlayProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentOverlayProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFollowsFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFollowsFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettingsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateSettingsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShoulderNavigationEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ShoulderNavigationEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowLabelModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowLabelModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings>
    {
        int32_t __stdcall get_TopPadding(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().TopPadding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowButtonVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Visibility>(this->shim().OverflowButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneToggleButtonVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Visibility>(this->shim().PaneToggleButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackButtonVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Visibility>(this->shim().BackButtonVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopPaneVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Visibility>(this->shim().TopPaneVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftPaneVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Visibility>(this->shim().LeftPaneVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SingleSelectionFollowsFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SingleSelectionFollowsFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::NavigationViewTemplateSettings>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics>
    {
        int32_t __stdcall get_TopPaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TopPaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowButtonVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneToggleButtonVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaneToggleButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackButtonVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackButtonVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopPaneVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TopPaneVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftPaneVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LeftPaneVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SingleSelectionFollowsFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SingleSelectionFollowsFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INotifyEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INotifyEventArgs>
    {
        int32_t __stdcall get_Value(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Value());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::INotifyEventArgs2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::INotifyEventArgs2>
    {
        int32_t __stdcall get_CallingUri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().CallingUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPage> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPage>
    {
        int32_t __stdcall get_Frame(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Frame>(this->shim().Frame());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NavigationCacheMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Navigation::NavigationCacheMode>(this->shim().NavigationCacheMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_NavigationCacheMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationCacheMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Navigation::NavigationCacheMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopAppBar(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::AppBar>(this->shim().TopAppBar());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TopAppBar(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopAppBar(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::AppBar const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BottomAppBar(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::AppBar>(this->shim().BottomAppBar());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BottomAppBar(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BottomAppBar(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::AppBar const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPageFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPageFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::Page>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPageOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPageOverrides>
    {
        int32_t __stdcall OnNavigatedFrom(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnNavigatedFrom(*reinterpret_cast<winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnNavigatedTo(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnNavigatedTo(*reinterpret_cast<winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnNavigatingFrom(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnNavigatingFrom(*reinterpret_cast<winrt::Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPageStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPageStatics>
    {
        int32_t __stdcall get_FrameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FrameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopAppBarProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TopAppBarProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BottomAppBarProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BottomAppBarProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPanel> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPanel>
    {
        int32_t __stdcall get_Children(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::UIElementCollection>(this->shim().Children());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Background(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Background(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsItemsHost(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsItemsHost());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChildrenTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ChildrenTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ChildrenTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChildrenTransitions(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPanel2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPanel2>
    {
        int32_t __stdcall get_BackgroundTransition(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::BrushTransition>(this->shim().BackgroundTransition());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundTransition(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundTransition(*reinterpret_cast<winrt::Windows::UI::Xaml::BrushTransition const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPanelFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPanelFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::Panel>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPanelStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPanelStatics>
    {
        int32_t __stdcall get_BackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsItemsHostProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsItemsHostProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChildrenTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ChildrenTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IParallaxView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IParallaxView>
    {
        int32_t __stdcall get_Child(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().Child());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Child(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Child(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalShift(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalShift());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalShift(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalShift(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceEndOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalSourceEndOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalSourceEndOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSourceEndOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceOffsetKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind>(this->shim().HorizontalSourceOffsetKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalSourceOffsetKind(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSourceOffsetKind(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceStartOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalSourceStartOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalSourceStartOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSourceStartOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalShiftClamped(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHorizontalShiftClamped());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHorizontalShiftClamped(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHorizontalShiftClamped(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalShiftClamped(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVerticalShiftClamped());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsVerticalShiftClamped(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVerticalShiftClamped(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHorizontalShiftRatio(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxHorizontalShiftRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxHorizontalShiftRatio(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxHorizontalShiftRatio(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxVerticalShiftRatio(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxVerticalShiftRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxVerticalShiftRatio(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxVerticalShiftRatio(value);
            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<winrt::Windows::UI::Xaml::UIElement>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalShift(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalShift());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalShift(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalShift(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceEndOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalSourceEndOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalSourceEndOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSourceEndOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceOffsetKind(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind>(this->shim().VerticalSourceOffsetKind());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalSourceOffsetKind(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSourceOffsetKind(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ParallaxSourceOffsetKind const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceStartOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalSourceStartOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalSourceStartOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSourceStartOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RefreshAutomaticHorizontalOffsets() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshAutomaticHorizontalOffsets();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RefreshAutomaticVerticalOffsets() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshAutomaticVerticalOffsets();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ParallaxView>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics>
    {
        int32_t __stdcall get_ChildProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ChildProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceEndOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceEndOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceOffsetKindProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceOffsetKindProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSourceStartOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSourceStartOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHorizontalShiftRatioProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHorizontalShiftRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalShiftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalShiftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalShiftClampedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalShiftClampedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalShiftClampedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalShiftClampedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceEndOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceEndOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceOffsetKindProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceOffsetKindProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSourceStartOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSourceStartOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxVerticalShiftRatioProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxVerticalShiftRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalShiftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalShiftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox>
    {
        int32_t __stdcall get_Password(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Password());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Password(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Password(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PasswordChar(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PasswordChar());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PasswordChar(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordChar(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPasswordRevealButtonEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPasswordRevealButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPasswordRevealButtonEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPasswordRevealButtonEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLength(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_PasswordChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PasswordChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PasswordChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContextMenuOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox2>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Paste(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Paste(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Paste(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Paste(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox3>
    {
        int32_t __stdcall get_PasswordRevealMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::PasswordRevealMode>(this->shim().PasswordRevealMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PasswordRevealMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordRevealMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::PasswordRevealMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextReadingOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<winrt::Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScope(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_InputScope(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InputScope(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::InputScope const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox4>
    {
        int32_t __stdcall add_PasswordChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PasswordChanging(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::PasswordBox, winrt::Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PasswordChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasswordChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPasswordBox5>
    {
        int32_t __stdcall get_CanPasteClipboardContent(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanPasteClipboardContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFlyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFlyout(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            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<winrt::Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PasteFromClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasteFromClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs>
    {
        int32_t __stdcall get_IsContentChanging(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContentChanging());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics>
    {
        int32_t __stdcall get_PasswordProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PasswordCharProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordCharProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPasswordRevealButtonEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsPasswordRevealButtonEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PreventKeyboardDisplayOnProgrammaticFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3>
    {
        int32_t __stdcall get_PasswordRevealModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PasswordRevealModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScopeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().InputScopeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5>
    {
        int32_t __stdcall get_CanPasteClipboardContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanPasteClipboardContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPathIcon> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPathIcon>
    {
        int32_t __stdcall get_Data(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Geometry>(this->shim().Data());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Data(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Data(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Geometry const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPathIconFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPathIconFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::PathIcon>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPathIconSource> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPathIconSource>
    {
        int32_t __stdcall get_Data(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Geometry>(this->shim().Data());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Data(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Data(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Geometry const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPathIconSourceFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPathIconSourceFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::PathIconSource>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPathIconSourceStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPathIconSourceStatics>
    {
        int32_t __stdcall get_DataProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DataProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPathIconStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPathIconStatics>
    {
        int32_t __stdcall get_DataProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DataProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture>
    {
        int32_t __stdcall get_BadgeNumber(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().BadgeNumber());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BadgeNumber(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeNumber(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().BadgeGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BadgeGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeImageSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().BadgeImageSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BadgeImageSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeImageSource(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().BadgeText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BadgeText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BadgeText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroup(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsGroup());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsGroup(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsGroup(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Contact(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::ApplicationModel::Contacts::Contact>(this->shim().Contact());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Contact(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Contact(*reinterpret_cast<winrt::Windows::ApplicationModel::Contacts::Contact const*>(&value));
            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 put_DisplayName(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayName(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Initials(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Initials());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Initials(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Initials(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreferSmallImage(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreferSmallImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PreferSmallImage(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreferSmallImage(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProfilePicture(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().ProfilePicture());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ProfilePicture(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ProfilePicture(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::PersonPicture>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics>
    {
        int32_t __stdcall get_BadgeNumberProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeNumberProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeImageSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeImageSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BadgeTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BadgeTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsGroupProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsGroupProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContactProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContactProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayNameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayNameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InitialsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().InitialsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreferSmallImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PreferSmallImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProfilePictureProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ProfilePictureProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPickerConfirmedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPickerConfirmedEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyout>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ConfirmationButtonsVisible(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ConfirmationButtonsVisible());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ConfirmationButtonsVisible(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ConfirmationButtonsVisible(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Confirmed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Confirmed(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::PickerFlyout, winrt::Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Confirmed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Confirmed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ShowAtAsync(void* target, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<bool>>(this->shim().ShowAtAsync(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyoutPresenter> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyoutPresenter>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ConfirmationButtonsVisibleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ConfirmationButtonsVisibleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPivot> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPivot>
    {
        int32_t __stdcall get_Title(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Title());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Title(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Title(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TitleTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().TitleTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TitleTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TitleTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectedIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedIndex(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedIndex(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().SelectedItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedItem(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedItem(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsLocked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsLocked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsLocked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsLocked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SelectionChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PivotItemLoading(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PivotItemLoading(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PivotItemLoading(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemLoading(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PivotItemLoaded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PivotItemLoaded(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PivotItemLoaded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemLoaded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PivotItemUnloading(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PivotItemUnloading(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PivotItemUnloading(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemUnloading(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PivotItemUnloaded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PivotItemUnloaded(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::Pivot, winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PivotItemUnloaded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PivotItemUnloaded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPivot2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPivot2>
    {
        int32_t __stdcall get_LeftHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().LeftHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LeftHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftHeader(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftHeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().LeftHeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LeftHeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftHeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().RightHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RightHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RightHeader(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightHeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().RightHeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RightHeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RightHeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPivot3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPivot3>
    {
        int32_t __stdcall get_HeaderFocusVisualPlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement>(this->shim().HeaderFocusVisualPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderFocusVisualPlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderFocusVisualPlacement(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::PivotHeaderFocusVisualPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHeaderItemsCarouselEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHeaderItemsCarouselEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHeaderItemsCarouselEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHeaderItemsCarouselEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPivotFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPivotFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::Pivot>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPivotItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPivotItem>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs>
    {
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::PivotItem>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Item(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Item(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::PivotItem const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPivotItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPivotItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::PivotItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPivotItemStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPivotItemStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics>
    {
        int32_t __stdcall get_TitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TitleTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TitleTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedIndexProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedIndexProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedItemProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedItemProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsLockedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsLockedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SlideInAnimationGroupProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SlideInAnimationGroupProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetSlideInAnimationGroup(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup>(this->shim().GetSlideInAnimationGroup(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetSlideInAnimationGroup(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetSlideInAnimationGroup(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&element), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics2>
    {
        int32_t __stdcall get_LeftHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftHeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RightHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightHeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RightHeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IPivotStatics3>
    {
        int32_t __stdcall get_HeaderFocusVisualPlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderFocusVisualPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHeaderItemsCarouselEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsHeaderItemsCarouselEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IProgressBar> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IProgressBar>
    {
        int32_t __stdcall get_IsIndeterminate(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsIndeterminate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsIndeterminate(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsIndeterminate(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowError(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowError());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowError(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowError(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowPaused(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ShowPaused());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ShowPaused(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowPaused(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::ProgressBarTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IProgressBarFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IProgressBarFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ProgressBar>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IProgressBarStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IProgressBarStatics>
    {
        int32_t __stdcall get_IsIndeterminateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsIndeterminateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowErrorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ShowErrorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ShowPausedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ShowPausedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IProgressRing> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IProgressRing>
    {
        int32_t __stdcall get_IsActive(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsActive());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsActive(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsActive(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::ProgressRingTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IProgressRingStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IProgressRingStatics>
    {
        int32_t __stdcall get_IsActiveProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsActiveProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRadioButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRadioButton>
    {
        int32_t __stdcall get_GroupName(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().GroupName());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GroupName(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GroupName(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRadioButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRadioButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::RadioButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRadioButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRadioButtonStatics>
    {
        int32_t __stdcall get_GroupNameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GroupNameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRatingControl> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRatingControl>
    {
        int32_t __stdcall get_Caption(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Caption());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Caption(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Caption(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InitialSetValue(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().InitialSetValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_InitialSetValue(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InitialSetValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsClearEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsClearEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsClearEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsClearEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsReadOnly(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsReadOnly(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsReadOnly(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxRating(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxRating());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxRating(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxRating(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderValue(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().PlaceholderValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderValue(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemInfo(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RatingItemInfo>(this->shim().ItemInfo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemInfo(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemInfo(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::RatingItemInfo const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Value(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Value());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Value(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Value(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ValueChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ValueChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RatingControl, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ValueChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ValueChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRatingControlFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRatingControlFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::RatingControl>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRatingControlStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRatingControlStatics>
    {
        int32_t __stdcall get_CaptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CaptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InitialSetValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().InitialSetValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsClearEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsClearEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsReadOnlyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxRatingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxRatingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemInfoProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemInfoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo>
    {
        int32_t __stdcall get_DisabledGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DisabledGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisabledGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisabledGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Glyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Glyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Glyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Glyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PointerOverGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PointerOverGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverPlaceholderGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PointerOverPlaceholderGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PointerOverPlaceholderGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverPlaceholderGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UnsetGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().UnsetGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UnsetGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsetGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::RatingItemFontInfo>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics>
    {
        int32_t __stdcall get_DisabledGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverPlaceholderGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverPlaceholderGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UnsetGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().UnsetGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo>
    {
        int32_t __stdcall get_DisabledImage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().DisabledImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisabledImage(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisabledImage(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Image(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().Image());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Image(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Image(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderImage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().PlaceholderImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderImage(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderImage(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverImage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().PointerOverImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PointerOverImage(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverImage(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverPlaceholderImage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().PointerOverPlaceholderImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PointerOverPlaceholderImage(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PointerOverPlaceholderImage(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UnsetImage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().UnsetImage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_UnsetImage(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsetImage(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::RatingItemImageInfo>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics>
    {
        int32_t __stdcall get_DisabledImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PointerOverPlaceholderImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PointerOverPlaceholderImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_UnsetImageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().UnsetImageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRatingItemInfo> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRatingItemInfo>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRatingItemInfoFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRatingItemInfoFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::RatingItemInfo>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainer> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainer>
    {
        int32_t __stdcall get_Visualizer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer>(this->shim().Visualizer());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Visualizer(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Visualizer(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PullDirection(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RefreshPullDirection>(this->shim().PullDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PullDirection(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PullDirection(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::RefreshPullDirection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_RefreshRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().RefreshRequested(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RefreshContainer, winrt::Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_RefreshRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall RequestRefresh() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RequestRefresh();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainerFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainerFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::RefreshContainer>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics>
    {
        int32_t __stdcall get_VisualizerProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VisualizerProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PullDirectionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PullDirectionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs>
    {
        int32_t __stdcall get_InteractionRatio(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().InteractionRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs>
    {
        int32_t __stdcall GetDeferral(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::Deferral>(this->shim().GetDeferral());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs>
    {
        int32_t __stdcall get_OldState(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RefreshVisualizerState>(this->shim().OldState());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewState(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RefreshVisualizerState>(this->shim().NewState());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer>
    {
        int32_t __stdcall RequestRefresh() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RequestRefresh();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RefreshVisualizerOrientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::RefreshVisualizerOrientation const*>(&value));
            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<winrt::Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            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::UI::Xaml::Controls::RefreshVisualizerState>(this->shim().State());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_RefreshRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().RefreshRequested(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer, winrt::Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_RefreshRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_RefreshStateChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().RefreshStateChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer, winrt::Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_RefreshStateChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RefreshStateChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics>
    {
        int32_t __stdcall get_InfoProviderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().InfoProviderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().StateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel>
    {
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<winrt::Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel2>
    {
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::RelativePanel>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics>
    {
        int32_t __stdcall get_LeftOfProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LeftOfProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetLeftOf(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().GetLeftOf(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetLeftOf(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLeftOf(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AboveProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AboveProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAbove(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().GetAbove(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAbove(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAbove(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightOfProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RightOfProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetRightOf(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().GetRightOf(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetRightOf(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRightOf(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BelowProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BelowProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetBelow(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().GetBelow(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetBelow(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetBelow(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignHorizontalCenterWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignHorizontalCenterWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignHorizontalCenterWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().GetAlignHorizontalCenterWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignHorizontalCenterWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignHorizontalCenterWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignVerticalCenterWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignVerticalCenterWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignVerticalCenterWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().GetAlignVerticalCenterWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignVerticalCenterWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignVerticalCenterWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignLeftWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignLeftWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignLeftWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().GetAlignLeftWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignLeftWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignLeftWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignTopWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignTopWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignTopWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().GetAlignTopWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignTopWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignTopWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignRightWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignRightWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignRightWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().GetAlignRightWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignRightWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignRightWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignBottomWithProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignBottomWithProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignBottomWith(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().GetAlignBottomWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignBottomWith(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignBottomWith(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignLeftWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignLeftWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignLeftWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignLeftWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignLeftWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignLeftWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignTopWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignTopWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignTopWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignTopWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignTopWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignTopWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignRightWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignRightWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignRightWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignRightWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignRightWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignRightWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignBottomWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignBottomWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignBottomWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignBottomWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignBottomWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignBottomWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignHorizontalCenterWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignHorizontalCenterWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignHorizontalCenterWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignHorizontalCenterWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignHorizontalCenterWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignHorizontalCenterWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AlignVerticalCenterWithPanelProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AlignVerticalCenterWithPanelProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetAlignVerticalCenterWithPanel(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetAlignVerticalCenterWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetAlignVerticalCenterWithPanel(void* element, bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetAlignVerticalCenterWithPanel(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics2>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox>
    {
        int32_t __stdcall get_IsReadOnly(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsReadOnly(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsReadOnly(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AcceptsReturn(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AcceptsReturn());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AcceptsReturn(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AcceptsReturn(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrapping(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextWrapping(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<winrt::Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSpellCheckEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSpellCheckEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSpellCheckEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSpellCheckEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextPredictionEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextPredictionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextPredictionEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextPredictionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Document(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::ITextDocument>(this->shim().Document());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScope(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_InputScope(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InputScope(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::InputScope const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_TextChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContextMenuOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox2>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorFontEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Paste(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Paste(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Paste(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Paste(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox3>
    {
        int32_t __stdcall add_TextCompositionStarted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionStarted(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionStarted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionStarted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextCompositionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextCompositionEnded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionEnded(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionEnded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionEnded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall get_TextReadingOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextReadingOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<winrt::Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DesiredCandidateWindowAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CandidateWindowAlignment>(this->shim().DesiredCandidateWindowAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DesiredCandidateWindowAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DesiredCandidateWindowAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CandidateWindowAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CandidateWindowBoundsChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CandidateWindowBoundsChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextChanging(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox4>
    {
        int32_t __stdcall GetLinguisticAlternativesAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::Collections::IVectorView<hstring>>>(this->shim().GetLinguisticAlternativesAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ClipboardCopyFormat(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RichEditClipboardFormat>(this->shim().ClipboardCopyFormat());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ClipboardCopyFormat(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClipboardCopyFormat(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::RichEditClipboardFormat const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox5>
    {
        int32_t __stdcall get_SelectionHighlightColorWhenNotFocused(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColorWhenNotFocused());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColorWhenNotFocused(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColorWhenNotFocused(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLength(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox6>
    {
        int32_t __stdcall get_HorizontalTextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalTextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterCasing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CharacterCasing>(this->shim().CharacterCasing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterCasing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterCasing(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CharacterCasing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisabledFormattingAccelerators(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::DisabledFormattingAccelerators>(this->shim().DisabledFormattingAccelerators());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisabledFormattingAccelerators(uint32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisabledFormattingAccelerators(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DisabledFormattingAccelerators const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CopyingToClipboard(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CopyingToClipboard(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CopyingToClipboard(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopyingToClipboard(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_CuttingToClipboard(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CuttingToClipboard(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CuttingToClipboard(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CuttingToClipboard(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox7>
    {
        int32_t __stdcall get_ContentLinkForegroundColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().ContentLinkForegroundColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentLinkForegroundColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkForegroundColor(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentLinkBackgroundColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().ContentLinkBackgroundColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentLinkBackgroundColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkBackgroundColor(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentLinkProviders(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::ContentLinkProviderCollection>(this->shim().ContentLinkProviders());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ContentLinkProviders(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkProviders(*reinterpret_cast<winrt::Windows::UI::Xaml::Documents::ContentLinkProviderCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HandwritingView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::HandwritingView>(this->shim().HandwritingView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HandwritingView(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HandwritingView(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::HandwritingView const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHandwritingViewEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHandwritingViewEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHandwritingViewEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHandwritingViewEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ContentLinkChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContentLinkChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContentLinkChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContentLinkInvoked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContentLinkInvoked(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Documents::ContentLinkInvokedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContentLinkInvoked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLinkInvoked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox8> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox8>
    {
        int32_t __stdcall get_TextDocument(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::RichEditTextDocument>(this->shim().TextDocument());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFlyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFlyout(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProofingMenuFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().ProofingMenuFlyout());
            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<winrt::Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanging(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichEditBox, winrt::Windows::UI::Xaml::Controls::RichEditBoxSelectionChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::RichEditBox>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs>
    {
        int32_t __stdcall get_SelectionStart(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionLength());
            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<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics>
    {
        int32_t __stdcall get_IsReadOnlyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AcceptsReturnProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AcceptsReturnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrappingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSpellCheckEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSpellCheckEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextPredictionEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextPredictionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScopeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().InputScopeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PreventKeyboardDisplayOnProgrammaticFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3>
    {
        int32_t __stdcall get_DesiredCandidateWindowAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DesiredCandidateWindowAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics4>
    {
        int32_t __stdcall get_ClipboardCopyFormatProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ClipboardCopyFormatProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5>
    {
        int32_t __stdcall get_SelectionHighlightColorWhenNotFocusedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorWhenNotFocusedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6>
    {
        int32_t __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterCasingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterCasingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisabledFormattingAcceleratorsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DisabledFormattingAcceleratorsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7>
    {
        int32_t __stdcall get_ContentLinkForegroundColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkForegroundColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentLinkBackgroundColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkBackgroundColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentLinkProvidersProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentLinkProvidersProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HandwritingViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HandwritingViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHandwritingViewEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsHandwritingViewEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8>
    {
        int32_t __stdcall get_SelectionFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProofingMenuFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ProofingMenuFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2>
    {
        int32_t __stdcall get_IsContentChanging(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContentChanging());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock>
    {
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<winrt::Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<winrt::Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<winrt::Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrapping(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextWrapping(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<winrt::Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextTrimming(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextTrimming>(this->shim().TextTrimming());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextTrimming(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextTrimming(*reinterpret_cast<winrt::Windows::UI::Xaml::TextTrimming const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Blocks(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::BlockCollection>(this->shim().Blocks());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().LineHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategy(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineStackingStrategy(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineStackingStrategy(*reinterpret_cast<winrt::Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterSpacing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowContentTarget(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow>(this->shim().OverflowContentTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OverflowContentTarget(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OverflowContentTarget(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSelectionEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextSelectionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextSelectionEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextSelectionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasOverflowContent(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasOverflowContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentStart(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentEnd(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionStart(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionEnd(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BaselineOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BaselineOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContextMenuOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Select(void* start, void* end) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Select(*reinterpret_cast<winrt::Windows::UI::Xaml::Documents::TextPointer const*>(&start), *reinterpret_cast<winrt::Windows::UI::Xaml::Documents::TextPointer const*>(&end));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetPositionFromPoint(winrt::Windows::Foundation::Point point, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().GetPositionFromPoint(*reinterpret_cast<winrt::Windows::Foundation::Point const*>(&point)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Focus(int32_t value, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Focus(*reinterpret_cast<winrt::Windows::UI::Xaml::FocusState const*>(&value)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextIndent(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().TextIndent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextIndent(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextIndent(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock2>
    {
        int32_t __stdcall get_MaxLines(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLines(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBounds(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextLineBounds(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextLineBounds(*reinterpret_cast<winrt::Windows::UI::Xaml::TextLineBounds const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpticalMarginAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OpticalMarginAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpticalMarginAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorFontEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextReadingOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<winrt::Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock4>
    {
        int32_t __stdcall get_TextDecorations(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::TextDecorations>(this->shim().TextDecorations());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextDecorations(uint32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextDecorations(*reinterpret_cast<winrt::Windows::UI::Text::TextDecorations const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock5>
    {
        int32_t __stdcall get_IsTextTrimmed(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalTextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalTextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextHighlighters(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Documents::TextHighlighter>>(this->shim().TextHighlighters());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsTextTrimmedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsTextTrimmedChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichTextBlock, winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsTextTrimmedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextTrimmedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlock6>
    {
        int32_t __stdcall get_SelectionFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFlyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFlyout(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CopySelectionToClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopySelectionToClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow>
    {
        int32_t __stdcall get_OverflowContentTarget(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow>(this->shim().OverflowContentTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OverflowContentTarget(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OverflowContentTarget(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::RichTextBlock>(this->shim().ContentSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasOverflowContent(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasOverflowContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentStart(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentEnd(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BaselineOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BaselineOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetPositionFromPoint(winrt::Windows::Foundation::Point point, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().GetPositionFromPoint(*reinterpret_cast<winrt::Windows::Foundation::Point const*>(&point)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Focus(int32_t value, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Focus(*reinterpret_cast<winrt::Windows::UI::Xaml::FocusState const*>(&value)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2>
    {
        int32_t __stdcall get_MaxLines(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLines(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3>
    {
        int32_t __stdcall get_IsTextTrimmed(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsTextTrimmedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsTextTrimmedChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow, winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsTextTrimmedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextTrimmedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics>
    {
        int32_t __stdcall get_OverflowContentTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowContentTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasOverflowContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HasOverflowContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2>
    {
        int32_t __stdcall get_MaxLinesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3>
    {
        int32_t __stdcall get_IsTextTrimmedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextTrimmedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics>
    {
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrappingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextTrimmingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextTrimmingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OverflowContentTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OverflowContentTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSelectionEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextSelectionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasOverflowContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HasOverflowContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextIndentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextIndentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2>
    {
        int32_t __stdcall get_MaxLinesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBoundsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextLineBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpticalMarginAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics4>
    {
        int32_t __stdcall get_TextDecorationsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextDecorationsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5>
    {
        int32_t __stdcall get_IsTextTrimmedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextTrimmedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics6>
    {
        int32_t __stdcall get_SelectionFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRowDefinition> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRowDefinition>
    {
        int32_t __stdcall get_Height(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::GridLength>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::GridLength>(this->shim().Height());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Height(struct struct_Windows_UI_Xaml_GridLength value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Height(*reinterpret_cast<winrt::Windows::UI::Xaml::GridLength const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MaxHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ActualHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ActualHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics>
    {
        int32_t __stdcall get_HeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider>
    {
        int32_t __stdcall get_CurrentAnchor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().CurrentAnchor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RegisterAnchorCandidate(void* element) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RegisterAnchorCandidate(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall UnregisterAnchorCandidate(void* element) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnregisterAnchorCandidate(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter>
    {
        int32_t __stdcall get_CanVerticallyScroll(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanVerticallyScroll());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanVerticallyScroll(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanVerticallyScroll(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanHorizontallyScroll(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanHorizontallyScroll());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanHorizontallyScroll(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanHorizontallyScroll(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollOwner(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().ScrollOwner());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ScrollOwner(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollOwner(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall LineUp() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineUp();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall LineDown() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineDown();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall LineLeft() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineLeft();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall LineRight() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineRight();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PageUp() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageUp();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PageDown() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageDown();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PageLeft() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageLeft();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PageRight() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PageRight();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MouseWheelUp() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelUp();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MouseWheelDown() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelDown();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MouseWheelLeft() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelLeft();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MouseWheelRight() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MouseWheelRight();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetHorizontalOffset(double offset) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetHorizontalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetVerticalOffset(double offset) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVerticalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MakeVisible(void* visual, winrt::Windows::Foundation::Rect rectangle, winrt::Windows::Foundation::Rect* result) noexcept final try
        {
            zero_abi<winrt::Windows::Foundation::Rect>(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::Rect>(this->shim().MakeVisible(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&visual), *reinterpret_cast<winrt::Windows::Foundation::Rect const*>(&rectangle)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2>
    {
        int32_t __stdcall get_CanContentRenderOutsideBounds(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanContentRenderOutsideBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanContentRenderOutsideBounds(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanContentRenderOutsideBounds(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SizesContentToTemplatedParent(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SizesContentToTemplatedParent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SizesContentToTemplatedParent(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SizesContentToTemplatedParent(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2>
    {
        int32_t __stdcall get_CanContentRenderOutsideBoundsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanContentRenderOutsideBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SizesContentToTemplatedParentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SizesContentToTemplatedParentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer>
    {
        int32_t __stdcall get_HorizontalScrollBarVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().HorizontalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalScrollBarVisibility(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalScrollBarVisibility(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalScrollBarVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().VerticalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalScrollBarVisibility(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalScrollBarVisibility(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalRailEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHorizontalRailEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHorizontalRailEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHorizontalRailEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalRailEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVerticalRailEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsVerticalRailEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVerticalRailEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalScrollChainingEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHorizontalScrollChainingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHorizontalScrollChainingEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHorizontalScrollChainingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalScrollChainingEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsVerticalScrollChainingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsVerticalScrollChainingEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsVerticalScrollChainingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomChainingEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomChainingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomChainingEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomChainingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsScrollInertiaEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsScrollInertiaEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsScrollInertiaEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsScrollInertiaEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomInertiaEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomInertiaEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomInertiaEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomInertiaEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalScrollMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ScrollMode>(this->shim().HorizontalScrollMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalScrollMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalScrollMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ScrollMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalScrollMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ScrollMode>(this->shim().VerticalScrollMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalScrollMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalScrollMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ScrollMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ZoomMode>(this->shim().ZoomMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ZoomMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ZoomMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSnapPointsAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment>(this->shim().HorizontalSnapPointsAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalSnapPointsAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSnapPointsAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSnapPointsAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment>(this->shim().VerticalSnapPointsAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalSnapPointsAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSnapPointsAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::SnapPointsAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSnapPointsType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().HorizontalSnapPointsType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalSnapPointsType(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalSnapPointsType(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSnapPointsType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().VerticalSnapPointsType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalSnapPointsType(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalSnapPointsType(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomSnapPointsType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SnapPointsType>(this->shim().ZoomSnapPointsType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ZoomSnapPointsType(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomSnapPointsType(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SnapPointsType const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollableWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ScrollableWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ComputedHorizontalScrollBarVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Visibility>(this->shim().ComputedHorizontalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ViewportHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollableHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ScrollableHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ComputedVerticalScrollBarVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Visibility>(this->shim().ComputedVerticalScrollBarVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ExtentHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinZoomFactor(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().MinZoomFactor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinZoomFactor(float value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinZoomFactor(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxZoomFactor(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().MaxZoomFactor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxZoomFactor(float value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxZoomFactor(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomFactor(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().ZoomFactor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomSnapPoints(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<float>>(this->shim().ZoomSnapPoints());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ViewChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ViewChanged(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ViewChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ScrollToHorizontalOffset(double offset) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollToHorizontalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ScrollToVerticalOffset(double offset) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScrollToVerticalOffset(offset);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ZoomToFactor(float factor) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomToFactor(factor);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall InvalidateScrollInfo() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InvalidateScrollInfo();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDeferredScrollingEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDeferredScrollingEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDeferredScrollingEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDeferredScrollingEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BringIntoViewOnFocusChange(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().BringIntoViewOnFocusChange());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BringIntoViewOnFocusChange(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BringIntoViewOnFocusChange(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer2>
    {
        int32_t __stdcall get_TopLeftHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().TopLeftHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TopLeftHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopLeftHeader(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().LeftHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LeftHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftHeader(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopHeader(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().TopHeader());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TopHeader(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopHeader(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ViewChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ViewChanging(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ViewChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ChangeView(void* horizontalOffset, void* verticalOffset, void* zoomFactor, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().ChangeView(*reinterpret_cast<winrt::Windows::Foundation::IReference<double> const*>(&horizontalOffset), *reinterpret_cast<winrt::Windows::Foundation::IReference<double> const*>(&verticalOffset), *reinterpret_cast<winrt::Windows::Foundation::IReference<float> const*>(&zoomFactor)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ChangeViewWithOptionalAnimation(void* horizontalOffset, void* verticalOffset, void* zoomFactor, bool disableAnimation, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().ChangeView(*reinterpret_cast<winrt::Windows::Foundation::IReference<double> const*>(&horizontalOffset), *reinterpret_cast<winrt::Windows::Foundation::IReference<double> const*>(&verticalOffset), *reinterpret_cast<winrt::Windows::Foundation::IReference<float> const*>(&zoomFactor), disableAnimation));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer3>
    {
        int32_t __stdcall add_DirectManipulationStarted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DirectManipulationStarted(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DirectManipulationStarted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DirectManipulationStarted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DirectManipulationCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DirectManipulationCompleted(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DirectManipulationCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DirectManipulationCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollViewer4>
    {
        int32_t __stdcall get_ReduceViewportForCoreInputViewOcclusions(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ReduceViewportForCoreInputViewOcclusions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ReduceViewportForCoreInputViewOcclusions(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ReduceViewportForCoreInputViewOcclusions(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalAnchorRatio(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalAnchorRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalAnchorRatio(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalAnchorRatio(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalAnchorRatio(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalAnchorRatio());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalAnchorRatio(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalAnchorRatio(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanContentRenderOutsideBounds(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanContentRenderOutsideBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanContentRenderOutsideBounds(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanContentRenderOutsideBounds(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_AnchorRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().AnchorRequested(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ScrollViewer, winrt::Windows::UI::Xaml::Controls::AnchorRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_AnchorRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AnchorRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics>
    {
        int32_t __stdcall get_HorizontalSnapPointsAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSnapPointsAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSnapPointsAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSnapPointsAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalSnapPointsTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalSnapPointsTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalSnapPointsTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalSnapPointsTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomSnapPointsTypeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomSnapPointsTypeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ViewportWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollableWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ScrollableWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ComputedHorizontalScrollBarVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ComputedHorizontalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ExtentWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ViewportHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ViewportHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ScrollableHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ScrollableHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ComputedVerticalScrollBarVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ComputedVerticalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExtentHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ExtentHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinZoomFactorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinZoomFactorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxZoomFactorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxZoomFactorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomFactorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomFactorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomSnapPointsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomSnapPointsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalScrollBarVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetHorizontalScrollBarVisibility(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().GetHorizontalScrollBarVisibility(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetHorizontalScrollBarVisibility(void* element, int32_t horizontalScrollBarVisibility) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetHorizontalScrollBarVisibility(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&horizontalScrollBarVisibility));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalScrollBarVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalScrollBarVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetVerticalScrollBarVisibility(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility>(this->shim().GetVerticalScrollBarVisibility(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetVerticalScrollBarVisibility(void* element, int32_t verticalScrollBarVisibility) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVerticalScrollBarVisibility(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility const*>(&verticalScrollBarVisibility));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalRailEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalRailEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsHorizontalRailEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsHorizontalRailEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsHorizontalRailEnabled(void* element, bool isHorizontalRailEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsHorizontalRailEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), isHorizontalRailEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalRailEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalRailEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsVerticalRailEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsVerticalRailEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsVerticalRailEnabled(void* element, bool isVerticalRailEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsVerticalRailEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), isVerticalRailEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHorizontalScrollChainingEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsHorizontalScrollChainingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsHorizontalScrollChainingEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsHorizontalScrollChainingEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsHorizontalScrollChainingEnabled(void* element, bool isHorizontalScrollChainingEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsHorizontalScrollChainingEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), isHorizontalScrollChainingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVerticalScrollChainingEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsVerticalScrollChainingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsVerticalScrollChainingEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsVerticalScrollChainingEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsVerticalScrollChainingEnabled(void* element, bool isVerticalScrollChainingEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsVerticalScrollChainingEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), isVerticalScrollChainingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomChainingEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomChainingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsZoomChainingEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsZoomChainingEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsZoomChainingEnabled(void* element, bool isZoomChainingEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsZoomChainingEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), isZoomChainingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsScrollInertiaEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsScrollInertiaEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsScrollInertiaEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsScrollInertiaEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsScrollInertiaEnabled(void* element, bool isScrollInertiaEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsScrollInertiaEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), isScrollInertiaEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomInertiaEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomInertiaEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsZoomInertiaEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsZoomInertiaEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsZoomInertiaEnabled(void* element, bool isZoomInertiaEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsZoomInertiaEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), isZoomInertiaEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalScrollModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalScrollModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetHorizontalScrollMode(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::ScrollMode>(this->shim().GetHorizontalScrollMode(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetHorizontalScrollMode(void* element, int32_t horizontalScrollMode) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetHorizontalScrollMode(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ScrollMode const*>(&horizontalScrollMode));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalScrollModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalScrollModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetVerticalScrollMode(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::ScrollMode>(this->shim().GetVerticalScrollMode(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetVerticalScrollMode(void* element, int32_t verticalScrollMode) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVerticalScrollMode(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ScrollMode const*>(&verticalScrollMode));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetZoomMode(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::ZoomMode>(this->shim().GetZoomMode(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetZoomMode(void* element, int32_t zoomMode) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetZoomMode(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ZoomMode const*>(&zoomMode));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDeferredScrollingEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsDeferredScrollingEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsDeferredScrollingEnabled(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsDeferredScrollingEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetIsDeferredScrollingEnabled(void* element, bool isDeferredScrollingEnabled) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetIsDeferredScrollingEnabled(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), isDeferredScrollingEnabled);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BringIntoViewOnFocusChangeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BringIntoViewOnFocusChangeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetBringIntoViewOnFocusChange(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetBringIntoViewOnFocusChange(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetBringIntoViewOnFocusChange(void* element, bool bringIntoViewOnFocusChange) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetBringIntoViewOnFocusChange(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), bringIntoViewOnFocusChange);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2>
    {
        int32_t __stdcall get_TopLeftHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TopLeftHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LeftHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LeftHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopHeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TopHeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4>
    {
        int32_t __stdcall get_ReduceViewportForCoreInputViewOcclusionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ReduceViewportForCoreInputViewOcclusionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalAnchorRatioProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalAnchorRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalAnchorRatioProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalAnchorRatioProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanContentRenderOutsideBoundsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanContentRenderOutsideBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetCanContentRenderOutsideBounds(void* element, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetCanContentRenderOutsideBounds(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetCanContentRenderOutsideBounds(void* element, bool canContentRenderOutsideBounds) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetCanContentRenderOutsideBounds(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), canContentRenderOutsideBounds);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerView>
    {
        int32_t __stdcall get_HorizontalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomFactor(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().ZoomFactor());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs>
    {
        int32_t __stdcall get_IsIntermediate(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsIntermediate());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs>
    {
        int32_t __stdcall get_NextView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ScrollViewerView>(this->shim().NextView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FinalView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ScrollViewerView>(this->shim().FinalView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsInertial(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsInertial());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISearchBox> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISearchBox>
    {
        int32_t __stdcall get_SearchHistoryEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().SearchHistoryEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SearchHistoryEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SearchHistoryEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SearchHistoryContext(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SearchHistoryContext());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SearchHistoryContext(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SearchHistoryContext(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_QueryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_QueryText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QueryText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusOnKeyboardInput(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().FocusOnKeyboardInput());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FocusOnKeyboardInput(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FocusOnKeyboardInput(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChooseSuggestionOnEnter(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ChooseSuggestionOnEnter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ChooseSuggestionOnEnter(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ChooseSuggestionOnEnter(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_QueryChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().QueryChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_QueryChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QueryChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SuggestionsRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SuggestionsRequested(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SuggestionsRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SuggestionsRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_QuerySubmitted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().QuerySubmitted(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_QuerySubmitted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().QuerySubmitted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ResultSuggestionChosen(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ResultSuggestionChosen(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ResultSuggestionChosen(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ResultSuggestionChosen(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PrepareForFocusOnKeyboardInput(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PrepareForFocusOnKeyboardInput(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SearchBox, winrt::Windows::UI::Xaml::RoutedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PrepareForFocusOnKeyboardInput(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PrepareForFocusOnKeyboardInput(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SetLocalContentSuggestionSettings(void* settings) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetLocalContentSuggestionSettings(*reinterpret_cast<winrt::Windows::ApplicationModel::Search::LocalContentSuggestionSettings const*>(&settings));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::SearchBox>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs>
    {
        int32_t __stdcall get_QueryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Language(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Language());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LinguisticDetails(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::ApplicationModel::Search::SearchQueryLinguisticDetails>(this->shim().LinguisticDetails());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs>
    {
        int32_t __stdcall get_QueryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Language(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Language());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LinguisticDetails(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::ApplicationModel::Search::SearchQueryLinguisticDetails>(this->shim().LinguisticDetails());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_KeyModifiers(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::System::VirtualKeyModifiers>(this->shim().KeyModifiers());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs>
    {
        int32_t __stdcall get_Tag(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Tag());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_KeyModifiers(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::System::VirtualKeyModifiers>(this->shim().KeyModifiers());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics>
    {
        int32_t __stdcall get_SearchHistoryEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SearchHistoryEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SearchHistoryContextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SearchHistoryContextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_QueryTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().QueryTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FocusOnKeyboardInputProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FocusOnKeyboardInputProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ChooseSuggestionOnEnterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ChooseSuggestionOnEnterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs>
    {
        int32_t __stdcall get_QueryText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().QueryText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Language(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Language());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LinguisticDetails(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::ApplicationModel::Search::SearchQueryLinguisticDetails>(this->shim().LinguisticDetails());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Request(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::ApplicationModel::Search::SearchSuggestionsRequest>(this->shim().Request());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs>
    {
        int32_t __stdcall get_AddedSections(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::HubSection>>(this->shim().AddedSections());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RemovedSections(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::HubSection>>(this->shim().RemovedSections());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgsFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgsFactory>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs>
    {
        int32_t __stdcall get_AddedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>>(this->shim().AddedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RemovedItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>>(this->shim().RemovedItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory>
    {
        int32_t __stdcall CreateInstanceWithRemovedItemsAndAddedItems(void* removedItems, void* addedItems, 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<winrt::Windows::UI::Xaml::Controls::SelectionChangedEventArgs>(this->shim().CreateInstanceWithRemovedItemsAndAddedItems(*reinterpret_cast<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable> const*>(&removedItems), *reinterpret_cast<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable> const*>(&addedItems), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoom>
    {
        int32_t __stdcall get_ZoomedInView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>(this->shim().ZoomedInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ZoomedInView(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomedInView(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomedOutView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>(this->shim().ZoomedOutView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ZoomedOutView(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ZoomedOutView(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomedInViewActive(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomedInViewActive());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomedInViewActive(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomedInViewActive(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanChangeViews(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanChangeViews());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanChangeViews(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanChangeViews(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ViewChangeStarted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ViewChangeStarted(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ViewChangeStarted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChangeStarted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ViewChangeCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ViewChangeCompleted(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ViewChangeCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ViewChangeCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ToggleActiveView() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ToggleActiveView();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomOutButtonEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomOutButtonEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomOutButtonEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomOutButtonEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation>
    {
        int32_t __stdcall get_SemanticZoomOwner(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SemanticZoom>(this->shim().SemanticZoomOwner());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SemanticZoomOwner(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SemanticZoomOwner(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoom const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsActiveView(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsActiveView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsActiveView(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsActiveView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomedInView(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsZoomedInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsZoomedInView(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsZoomedInView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall InitializeViewChange() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InitializeViewChange();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CompleteViewChange() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompleteViewChange();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall MakeVisible(void* item) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MakeVisible(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&item));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall StartViewChangeFrom(void* source, void* destination) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StartViewChangeFrom(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall StartViewChangeTo(void* source, void* destination) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StartViewChangeTo(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CompleteViewChangeFrom(void* source, void* destination) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompleteViewChangeFrom(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CompleteViewChangeTo(void* source, void* destination) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompleteViewChangeTo(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&source), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&destination));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation>
    {
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Item(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Item(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Bounds(winrt::Windows::Foundation::Rect* value) noexcept final try
        {
            zero_abi<winrt::Windows::Foundation::Rect>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Rect>(this->shim().Bounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Bounds(winrt::Windows::Foundation::Rect value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Bounds(*reinterpret_cast<winrt::Windows::Foundation::Rect const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics>
    {
        int32_t __stdcall get_ZoomedInViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomedInViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ZoomedOutViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ZoomedOutViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomedInViewActiveProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomedInViewActiveProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanChangeViewsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanChangeViewsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsZoomOutButtonEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsZoomOutButtonEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs>
    {
        int32_t __stdcall get_IsSourceZoomedInView(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSourceZoomedInView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSourceZoomedInView(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSourceZoomedInView(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourceItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation>(this->shim().SourceItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SourceItem(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SourceItem(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DestinationItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation>(this->shim().DestinationItem());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DestinationItem(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DestinationItem(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout>
    {
        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 put_Title(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Title(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().HeaderBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().HeaderForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IconSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::ImageSource>(this->shim().IconSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IconSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IconSource(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::ImageSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::SettingsFlyoutTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_BackClick(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().BackClick(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::BackClickEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_BackClick(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackClick(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall Show() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Show();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ShowIndependent() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ShowIndependent();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Hide() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Hide();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::SettingsFlyout>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics>
    {
        int32_t __stdcall get_TitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IconSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IconSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISlider> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISlider>
    {
        int32_t __stdcall get_IntermediateValue(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().IntermediateValue());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IntermediateValue(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IntermediateValue(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StepFrequency(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().StepFrequency());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_StepFrequency(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StepFrequency(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SnapsTo(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo>(this->shim().SnapsTo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SnapsTo(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SnapsTo(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::SliderSnapsTo const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TickFrequency(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().TickFrequency());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TickFrequency(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TickFrequency(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TickPlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::TickPlacement>(this->shim().TickPlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TickPlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TickPlacement(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::TickPlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDirectionReversed(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDirectionReversed());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDirectionReversed(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDirectionReversed(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsThumbToolTipEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsThumbToolTipEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsThumbToolTipEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsThumbToolTipEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ThumbToolTipValueConverter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Data::IValueConverter>(this->shim().ThumbToolTipValueConverter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ThumbToolTipValueConverter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ThumbToolTipValueConverter(*reinterpret_cast<winrt::Windows::UI::Xaml::Data::IValueConverter const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISlider2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISlider2>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISliderFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISliderFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::Slider>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics>
    {
        int32_t __stdcall get_IntermediateValueProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IntermediateValueProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StepFrequencyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().StepFrequencyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SnapsToProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SnapsToProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TickFrequencyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TickFrequencyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TickPlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TickPlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsDirectionReversedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsDirectionReversedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsThumbToolTipEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsThumbToolTipEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ThumbToolTipValueConverterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ThumbToolTipValueConverterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISliderStatics2>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitButton>
    {
        int32_t __stdcall get_Flyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().Flyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Flyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Flyout(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Command(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Input::ICommand>(this->shim().Command());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Command(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Command(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().CommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CommandParameter(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Click(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Click(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitButton, winrt::Windows::UI::Xaml::Controls::SplitButtonClickEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Click(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Click(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeer> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeer>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory>
    {
        int32_t __stdcall CreateInstance(void* owner, 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<winrt::Windows::UI::Xaml::Controls::SplitButtonAutomationPeer>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SplitButton const*>(&owner), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonClickEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonClickEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::SplitButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics>
    {
        int32_t __stdcall get_FlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitView>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().Pane());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Pane(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pane(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsPaneOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsPaneOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsPaneOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpenPaneLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().OpenPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OpenPaneLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpenPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLength(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().CompactPaneLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CompactPaneLength(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompactPaneLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PanePlacement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SplitViewPanePlacement>(this->shim().PanePlacement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PanePlacement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PanePlacement(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SplitViewPanePlacement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SplitViewDisplayMode>(this->shim().DisplayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DisplayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DisplayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SplitViewDisplayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::SplitViewTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneBackground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().PaneBackground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PaneBackground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneBackground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_PaneClosing(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneClosing(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneClosing(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosing(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneClosed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneClosed(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneClosed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneClosed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitView2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitView2>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitView3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitView3>
    {
        int32_t __stdcall add_PaneOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneOpening(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PaneOpened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PaneOpened(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SplitView, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PaneOpened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PaneOpened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitViewFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitViewFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::SplitView>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs>
    {
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaneProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsPaneOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsPaneOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpenPaneLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OpenPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompactPaneLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CompactPaneLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PanePlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PanePlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DisplayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DisplayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettingsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TemplateSettingsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaneBackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaneBackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISplitViewStatics2>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStackPanel> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStackPanel>
    {
        int32_t __stdcall get_AreScrollSnapPointsRegular(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreScrollSnapPointsRegular());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreScrollSnapPointsRegular(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreScrollSnapPointsRegular(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStackPanel2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStackPanel2>
    {
        int32_t __stdcall get_BorderBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().BorderBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThickness(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().BorderThickness());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BorderThickness(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BorderThickness(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::CornerRadius>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::CornerRadius>(this->shim().CornerRadius());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CornerRadius(struct struct_Windows_UI_Xaml_CornerRadius value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CornerRadius(*reinterpret_cast<winrt::Windows::UI::Xaml::CornerRadius const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStackPanel4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStackPanel4>
    {
        int32_t __stdcall get_Spacing(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().Spacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Spacing(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Spacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStackPanel5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStackPanel5>
    {
        int32_t __stdcall get_BackgroundSizing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::BackgroundSizing>(this->shim().BackgroundSizing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BackgroundSizing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BackgroundSizing(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::BackgroundSizing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStackPanelFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStackPanelFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::StackPanel>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics>
    {
        int32_t __stdcall get_AreScrollSnapPointsRegularProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AreScrollSnapPointsRegularProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2>
    {
        int32_t __stdcall get_BorderBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BorderThicknessProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BorderThicknessProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CornerRadiusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CornerRadiusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics4>
    {
        int32_t __stdcall get_SpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStackPanelStatics5>
    {
        int32_t __stdcall get_BackgroundSizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundSizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStyleSelector> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStyleSelector>
    {
        int32_t __stdcall SelectStyle(void* item, void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().SelectStyle(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStyleSelectorFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStyleSelectorFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::StyleSelector>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&baseInterface), winrt_impl_innerInterface));
                if (innerInterface) *innerInterface = detach_abi(winrt_impl_innerInterface);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides>
    {
        int32_t __stdcall SelectStyleCore(void* item, void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().SelectStyleCore(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item), *reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2>
    {
        int32_t __stdcall CreateCoreIndependentInputSource(uint32_t deviceTypes, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Core::CoreIndependentInputSource>(this->shim().CreateCoreIndependentInputSource(*reinterpret_cast<winrt::Windows::UI::Core::CoreInputDeviceTypes const*>(&deviceTypes)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::SwapChainBackgroundPanel>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanel> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanel>
    {
        int32_t __stdcall get_CompositionScaleX(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().CompositionScaleX());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompositionScaleY(float* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<float>(this->shim().CompositionScaleY());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CompositionScaleChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CompositionScaleChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SwapChainPanel, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CompositionScaleChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CompositionScaleChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall CreateCoreIndependentInputSource(uint32_t deviceTypes, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Core::CoreIndependentInputSource>(this->shim().CreateCoreIndependentInputSource(*reinterpret_cast<winrt::Windows::UI::Core::CoreInputDeviceTypes const*>(&deviceTypes)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanelFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanelFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::SwapChainPanel>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics>
    {
        int32_t __stdcall get_CompositionScaleXProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CompositionScaleXProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CompositionScaleYProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CompositionScaleYProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl>
    {
        int32_t __stdcall get_LeftItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SwipeItems>(this->shim().LeftItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LeftItems(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LeftItems(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SwipeItems>(this->shim().RightItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_RightItems(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RightItems(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SwipeItems>(this->shim().TopItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TopItems(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TopItems(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BottomItems(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SwipeItems>(this->shim().BottomItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BottomItems(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BottomItems(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SwipeItems const*>(&value));
            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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwipeControlFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwipeControlFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::SwipeControl>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics>
    {
        int32_t __stdcall get_LeftItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LeftItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RightItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RightItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TopItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TopItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BottomItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BottomItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem>
    {
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IconSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::IconSource>(this->shim().IconSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IconSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IconSource(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::IconSource const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Background(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Background());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Background(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Background(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Command(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Input::ICommand>(this->shim().Command());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Command(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Command(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::ICommand const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameter(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().CommandParameter());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CommandParameter(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CommandParameter(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BehaviorOnInvoked(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked>(this->shim().BehaviorOnInvoked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_BehaviorOnInvoked(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BehaviorOnInvoked(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SwipeBehaviorOnInvoked const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Invoked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Invoked(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::SwipeItem, winrt::Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Invoked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Invoked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::SwipeItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs>
    {
        int32_t __stdcall get_SwipeControl(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SwipeControl>(this->shim().SwipeControl());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics>
    {
        int32_t __stdcall get_IconSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IconSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BackgroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BackgroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CommandProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CommandParameterProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CommandParameterProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BehaviorOnInvokedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().BehaviorOnInvokedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwipeItems> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwipeItems>
    {
        int32_t __stdcall get_Mode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SwipeMode>(this->shim().Mode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Mode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Mode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::SwipeMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemsFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemsFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::SwipeItems>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemsStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISwipeItemsStatics>
    {
        int32_t __stdcall get_ModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISymbolIcon> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISymbolIcon>
    {
        int32_t __stdcall get_Symbol(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Symbol>(this->shim().Symbol());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Symbol(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Symbol(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Symbol const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconFactory>
    {
        int32_t __stdcall CreateInstanceWithSymbol(int32_t symbol, void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::SymbolIcon>(this->shim().CreateInstanceWithSymbol(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Symbol const*>(&symbol)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconSource> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconSource>
    {
        int32_t __stdcall get_Symbol(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Symbol>(this->shim().Symbol());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Symbol(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Symbol(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Symbol const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::SymbolIconSource>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceStatics>
    {
        int32_t __stdcall get_SymbolProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SymbolProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconStatics>
    {
        int32_t __stdcall get_SymbolProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SymbolProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlock> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlock>
    {
        int32_t __stdcall get_FontSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().FontSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamily(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::FontFamily>(this->shim().FontFamily());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontFamily(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontFamily(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::FontFamily const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Text::FontWeight>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontWeight>(this->shim().FontWeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontWeight(*reinterpret_cast<winrt::Windows::UI::Text::FontWeight const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyle(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStyle>(this->shim().FontStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStyle(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStyle(*reinterpret_cast<winrt::Windows::UI::Text::FontStyle const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::FontStretch>(this->shim().FontStretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_FontStretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FontStretch(*reinterpret_cast<winrt::Windows::UI::Text::FontStretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().CharacterSpacing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterSpacing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterSpacing(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Foreground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().Foreground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Foreground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Foreground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrapping(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextWrapping(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<winrt::Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextTrimming(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextTrimming>(this->shim().TextTrimming());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextTrimming(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextTrimming(*reinterpret_cast<winrt::Windows::UI::Xaml::TextTrimming const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Inlines(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::InlineCollection>(this->shim().Inlines());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Padding(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().Padding());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Padding(struct struct_Windows_UI_Xaml_Thickness value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Padding(*reinterpret_cast<winrt::Windows::UI::Xaml::Thickness const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().LineHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategy(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::LineStackingStrategy>(this->shim().LineStackingStrategy());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LineStackingStrategy(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LineStackingStrategy(*reinterpret_cast<winrt::Windows::UI::Xaml::LineStackingStrategy const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSelectionEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextSelectionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextSelectionEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextSelectionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentStart(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ContentEnd(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().ContentEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionStart(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionEnd(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Documents::TextPointer>(this->shim().SelectionEnd());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_BaselineOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().BaselineOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContextMenuOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Select(void* start, void* end) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Select(*reinterpret_cast<winrt::Windows::UI::Xaml::Documents::TextPointer const*>(&start), *reinterpret_cast<winrt::Windows::UI::Xaml::Documents::TextPointer const*>(&end));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Focus(int32_t value, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Focus(*reinterpret_cast<winrt::Windows::UI::Xaml::FocusState const*>(&value)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlock2>
    {
        int32_t __stdcall get_SelectionHighlightColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLines(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLines());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLines(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLines(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBounds(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextLineBounds>(this->shim().TextLineBounds());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextLineBounds(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextLineBounds(*reinterpret_cast<winrt::Windows::UI::Xaml::TextLineBounds const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpticalMarginAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::OpticalMarginAlignment>(this->shim().OpticalMarginAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OpticalMarginAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OpticalMarginAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::OpticalMarginAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorFontEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextReadingOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<winrt::Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlock3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlock3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextScaleFactorEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextScaleFactorEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextScaleFactorEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlock4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlock4>
    {
        int32_t __stdcall GetAlphaMask(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Composition::CompositionBrush>(this->shim().GetAlphaMask());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlock5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlock5>
    {
        int32_t __stdcall get_TextDecorations(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Text::TextDecorations>(this->shim().TextDecorations());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextDecorations(uint32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextDecorations(*reinterpret_cast<winrt::Windows::UI::Text::TextDecorations const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlock6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlock6>
    {
        int32_t __stdcall get_IsTextTrimmed(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextTrimmed());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalTextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalTextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextHighlighters(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Documents::TextHighlighter>>(this->shim().TextHighlighters());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsTextTrimmedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsTextTrimmedChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBlock, winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsTextTrimmedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextTrimmedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlock7> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlock7>
    {
        int32_t __stdcall get_SelectionFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFlyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFlyout(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CopySelectionToClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopySelectionToClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics>
    {
        int32_t __stdcall get_FontSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontFamilyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontFamilyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontWeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontWeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_FontStretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().FontStretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterSpacingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterSpacingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrappingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextTrimmingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextTrimmingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PaddingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PaddingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LineHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_LineStackingStrategyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LineStackingStrategyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextSelectionEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextSelectionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2>
    {
        int32_t __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLinesProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLinesProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextLineBoundsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextLineBoundsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OpticalMarginAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OpticalMarginAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics3>
    {
        int32_t __stdcall get_IsTextScaleFactorEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextScaleFactorEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics5>
    {
        int32_t __stdcall get_TextDecorationsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextDecorationsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6>
    {
        int32_t __stdcall get_IsTextTrimmedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextTrimmedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics7> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBlockStatics7>
    {
        int32_t __stdcall get_SelectionFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBox> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBox>
    {
        int32_t __stdcall get_Text(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().Text());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Text(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Text(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SelectedText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionLength(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionStart(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionStart(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionStart(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaxLength());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaxLength(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaxLength(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsReadOnly(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsReadOnly());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsReadOnly(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsReadOnly(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AcceptsReturn(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AcceptsReturn());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AcceptsReturn(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AcceptsReturn(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextAlignment>(this->shim().TextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrapping(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextWrapping>(this->shim().TextWrapping());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextWrapping(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextWrapping(*reinterpret_cast<winrt::Windows::UI::Xaml::TextWrapping const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSpellCheckEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSpellCheckEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsSpellCheckEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsSpellCheckEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextPredictionEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsTextPredictionEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsTextPredictionEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsTextPredictionEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScope(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Input::InputScope>(this->shim().InputScope());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_InputScope(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InputScope(*reinterpret_cast<winrt::Windows::UI::Xaml::Input::InputScope const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_TextChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TextChangedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_SelectionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanged(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContextMenuOpening(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContextMenuOpening(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ContextMenuOpeningEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContextMenuOpening(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContextMenuOpening(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall Select(int32_t start, int32_t length) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Select(start, length);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetRectFromCharacterIndex(int32_t charIndex, bool trailingEdge, winrt::Windows::Foundation::Rect* result) noexcept final try
        {
            zero_abi<winrt::Windows::Foundation::Rect>(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::Rect>(this->shim().GetRectFromCharacterIndex(charIndex, trailingEdge));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBox2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBox2>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().PlaceholderText());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderText(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderText(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColor(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColor(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColor(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocus(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().PreventKeyboardDisplayOnProgrammaticFocus());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PreventKeyboardDisplayOnProgrammaticFocus(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PreventKeyboardDisplayOnProgrammaticFocus(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsColorFontEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsColorFontEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsColorFontEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Paste(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Paste(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TextControlPasteEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Paste(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Paste(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBox3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBox3>
    {
        int32_t __stdcall add_TextCompositionStarted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionStarted(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionStarted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionStarted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextCompositionChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextCompositionEnded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextCompositionEnded(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextCompositionEnded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextCompositionEnded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall get_TextReadingOrder(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextReadingOrder>(this->shim().TextReadingOrder());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TextReadingOrder(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextReadingOrder(*reinterpret_cast<winrt::Windows::UI::Xaml::TextReadingOrder const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DesiredCandidateWindowAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CandidateWindowAlignment>(this->shim().DesiredCandidateWindowAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DesiredCandidateWindowAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DesiredCandidateWindowAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CandidateWindowAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CandidateWindowBoundsChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CandidateWindowBoundsChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CandidateWindowBoundsChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_TextChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TextChanging(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TextChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TextChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBox4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBox4>
    {
        int32_t __stdcall GetLinguisticAlternativesAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::Collections::IVectorView<hstring>>>(this->shim().GetLinguisticAlternativesAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBox5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBox5>
    {
        int32_t __stdcall get_SelectionHighlightColorWhenNotFocused(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::SolidColorBrush>(this->shim().SelectionHighlightColorWhenNotFocused());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionHighlightColorWhenNotFocused(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionHighlightColorWhenNotFocused(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::SolidColorBrush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBox6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBox6>
    {
        int32_t __stdcall get_HorizontalTextAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::TextAlignment>(this->shim().HorizontalTextAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalTextAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalTextAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::TextAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterCasing(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::CharacterCasing>(this->shim().CharacterCasing());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CharacterCasing(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CharacterCasing(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CharacterCasing const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderForeground(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().PlaceholderForeground());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlaceholderForeground(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlaceholderForeground(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CopyingToClipboard(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CopyingToClipboard(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CopyingToClipboard(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopyingToClipboard(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_CuttingToClipboard(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CuttingToClipboard(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CuttingToClipboard(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CuttingToClipboard(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_BeforeTextChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().BeforeTextChanging(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_BeforeTextChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BeforeTextChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBox7> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBox7>
    {
        int32_t __stdcall get_HandwritingView(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::HandwritingView>(this->shim().HandwritingView());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HandwritingView(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HandwritingView(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::HandwritingView const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHandwritingViewEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsHandwritingViewEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsHandwritingViewEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsHandwritingViewEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBox8> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBox8>
    {
        int32_t __stdcall get_CanPasteClipboardContent(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanPasteClipboardContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanUndo(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanUndo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanRedo(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanRedo());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().SelectionFlyout());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionFlyout(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionFlyout(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProofingMenuFlyout(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase>(this->shim().ProofingMenuFlyout());
            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<winrt::Windows::Foundation::IInspectable>(this->shim().Description());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Description(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Description(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectionChanging(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectionChanging(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TextBox, winrt::Windows::UI::Xaml::Controls::TextBoxSelectionChangingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectionChanging(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionChanging(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall Undo() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Undo();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Redo() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Redo();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall PasteFromClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PasteFromClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CopySelectionToClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CopySelectionToClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CutSelectionToClipboard() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CutSelectionToClipboard();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ClearUndoRedoHistory() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClearUndoRedoHistory();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs>
    {
        int32_t __stdcall get_NewText(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().NewText());
            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<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::TextBox>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs>
    {
        int32_t __stdcall get_SelectionStart(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionStart());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionLength(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().SelectionLength());
            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<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics>
    {
        int32_t __stdcall get_TextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaxLengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaxLengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsReadOnlyProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsReadOnlyProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AcceptsReturnProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AcceptsReturnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextWrappingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextWrappingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSpellCheckEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsSpellCheckEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsTextPredictionEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsTextPredictionEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_InputScopeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().InputScopeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderTextProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderTextProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionHighlightColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PreventKeyboardDisplayOnProgrammaticFocusProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PreventKeyboardDisplayOnProgrammaticFocusProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsColorFontEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsColorFontEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3>
    {
        int32_t __stdcall get_DesiredCandidateWindowAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DesiredCandidateWindowAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TextReadingOrderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TextReadingOrderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics5>
    {
        int32_t __stdcall get_SelectionHighlightColorWhenNotFocusedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionHighlightColorWhenNotFocusedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6>
    {
        int32_t __stdcall get_HorizontalTextAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalTextAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CharacterCasingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CharacterCasingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlaceholderForegroundProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlaceholderForegroundProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7>
    {
        int32_t __stdcall get_HandwritingViewProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HandwritingViewProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsHandwritingViewEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsHandwritingViewEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8>
    {
        int32_t __stdcall get_CanPasteClipboardContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanPasteClipboardContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanUndoProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanUndoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanRedoProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanRedoProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ProofingMenuFlyoutProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ProofingMenuFlyoutProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DescriptionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DescriptionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2>
    {
        int32_t __stdcall get_IsContentChanging(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsContentChanging());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextChangedEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyout>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::TextCommandBarFlyout>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs>
    {
        int32_t __stdcall get_StartIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Length(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Length());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs>
    {
        int32_t __stdcall get_StartIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Length(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Length());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs>
    {
        int32_t __stdcall get_StartIndex(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().StartIndex());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Length(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Length());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs>
    {
        int32_t __stdcall get_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs>
    {
        int32_t __stdcall get_OldTime(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().OldTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewTime(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().NewTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePicker> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePicker>
    {
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ClockIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().ClockIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ClockIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClockIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinuteIncrement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinuteIncrement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinuteIncrement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinuteIncrement(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Time(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().Time());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Time(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Time(*reinterpret_cast<winrt::Windows::Foundation::TimeSpan const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_TimeChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TimeChanged(*reinterpret_cast<winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TimeChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TimeChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePicker2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePicker2>
    {
        int32_t __stdcall get_LightDismissOverlayMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode>(this->shim().LightDismissOverlayMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_LightDismissOverlayMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LightDismissOverlayMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::LightDismissOverlayMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePicker3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePicker3>
    {
        int32_t __stdcall get_SelectedTime(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan>>(this->shim().SelectedTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectedTime(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedTime(*reinterpret_cast<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_SelectedTimeChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SelectedTimeChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TimePicker, winrt::Windows::UI::Xaml::Controls::TimePickerSelectedValueChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SelectedTimeChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectedTimeChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::TimePicker>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout>
    {
        int32_t __stdcall get_ClockIdentifier(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().ClockIdentifier());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ClockIdentifier(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ClockIdentifier(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Time(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().Time());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Time(int64_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Time(*reinterpret_cast<winrt::Windows::Foundation::TimeSpan const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinuteIncrement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MinuteIncrement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinuteIncrement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinuteIncrement(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_TimePicked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().TimePicked(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TimePickerFlyout, winrt::Windows::UI::Xaml::Controls::TimePickedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_TimePicked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TimePicked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall ShowAtAsync(void* target, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan>>>(this->shim().ShowAtAsync(*reinterpret_cast<winrt::Windows::UI::Xaml::FrameworkElement const*>(&target)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsDefaultShadowEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsDefaultShadowEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsDefaultShadowEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2>
    {
        int32_t __stdcall get_IsDefaultShadowEnabledProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsDefaultShadowEnabledProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics>
    {
        int32_t __stdcall get_ClockIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ClockIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TimeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TimeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinuteIncrementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinuteIncrementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs>
    {
        int32_t __stdcall get_OldTime(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan>>(this->shim().OldTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewTime(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan>>(this->shim().NewTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics>
    {
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ClockIdentifierProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ClockIdentifierProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinuteIncrementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinuteIncrementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TimeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TimeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics2>
    {
        int32_t __stdcall get_LightDismissOverlayModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().LightDismissOverlayModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickerStatics3>
    {
        int32_t __stdcall get_SelectedTimeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectedTimeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs>
    {
        int32_t __stdcall get_OldTime(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().OldTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_NewTime(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().NewTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem>
    {
        int32_t __stdcall get_IsChecked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsChecked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics>
    {
        int32_t __stdcall get_IsCheckedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsCheckedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButton> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButton>
    {
        int32_t __stdcall get_IsChecked(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsChecked());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsChecked(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsChecked(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_IsCheckedChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().IsCheckedChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::ToggleSplitButton, winrt::Windows::UI::Xaml::Controls::ToggleSplitButtonIsCheckedChangedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_IsCheckedChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsCheckedChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeer> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeer>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory>
    {
        int32_t __stdcall CreateInstance(void* owner, 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<winrt::Windows::UI::Xaml::Controls::ToggleSplitButtonAutomationPeer>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::ToggleSplitButton const*>(&owner), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ToggleSplitButton>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonIsCheckedChangedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonIsCheckedChangedEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitch>
    {
        int32_t __stdcall get_IsOn(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOn());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsOn(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOn(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Header(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Header());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Header(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Header(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().HeaderTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HeaderTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HeaderTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OnContent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().OnContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OnContent(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContent(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OnContentTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().OnContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OnContentTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnContentTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OffContent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().OffContent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OffContent(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OffContent(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OffContentTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().OffContentTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_OffContentTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OffContentTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::ToggleSwitchTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Toggled(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Toggled(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Toggled(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Toggled(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>
    {
        int32_t __stdcall OnToggled() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnToggled();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnOnContentChanged(void* oldContent, void* newContent) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOnContentChanged(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&newContent));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnOffContentChanged(void* oldContent, void* newContent) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnOffContentChanged(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&newContent));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnHeaderChanged(void* oldContent, void* newContent) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnHeaderChanged(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&oldContent), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&newContent));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics>
    {
        int32_t __stdcall get_IsOnProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsOnProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HeaderTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HeaderTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OnContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OnContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OnContentTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OnContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OffContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OffContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OffContentTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OffContentTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToolTip> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToolTip>
    {
        int32_t __stdcall get_HorizontalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().HorizontalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOpen(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsOpen());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsOpen(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsOpen(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Placement(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::PlacementMode>(this->shim().Placement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Placement(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Placement(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::PlacementMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementTarget(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().PlacementTarget());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlacementTarget(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlacementTarget(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffset(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().VerticalOffset());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalOffset(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalOffset(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::ToolTipTemplateSettings>(this->shim().TemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_Closed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Closed(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Closed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Closed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Opened(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Opened(*reinterpret_cast<winrt::Windows::UI::Xaml::RoutedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Opened(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Opened(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToolTip2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToolTip2>
    {
        int32_t __stdcall get_PlacementRect(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::Rect>>(this->shim().PlacementRect());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PlacementRect(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PlacementRect(*reinterpret_cast<winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::Rect> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToolTipFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToolTipFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::ToolTip>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToolTipService> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToolTipService>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics>
    {
        int32_t __stdcall get_PlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetPlacement(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::Primitives::PlacementMode>(this->shim().GetPlacement(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetPlacement(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetPlacement(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::PlacementMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetPlacementTarget(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().GetPlacementTarget(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetPlacementTarget(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetPlacementTarget(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ToolTipProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ToolTipProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetToolTip(void* element, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().GetToolTip(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetToolTip(void* element, void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetToolTip(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToolTipStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToolTipStatics>
    {
        int32_t __stdcall get_HorizontalOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsOpenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsOpenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PlacementTargetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementTargetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalOffsetProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalOffsetProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IToolTipStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IToolTipStatics2>
    {
        int32_t __stdcall get_PlacementRectProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PlacementRectProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeView>
    {
        int32_t __stdcall get_RootNodes(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::TreeViewNode>>(this->shim().RootNodes());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::TreeViewSelectionMode>(this->shim().SelectionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SelectionMode(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectionMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TreeViewSelectionMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SelectedNodes(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::TreeViewNode>>(this->shim().SelectedNodes());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Expand(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Expand(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TreeViewNode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Collapse(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Collapse(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TreeViewNode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SelectAll() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SelectAll();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ItemInvoked(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ItemInvoked(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ItemInvoked(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemInvoked(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Expanding(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Expanding(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Expanding(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Expanding(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_Collapsed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().Collapsed(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_Collapsed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Collapsed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeView2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeView2>
    {
        int32_t __stdcall NodeFromContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().NodeFromContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromNode(void* node, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromNode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TreeViewNode const*>(&node)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ItemFromContainer(void* container, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().ItemFromContainer(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&container)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ContainerFromItem(void* item, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().ContainerFromItem(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&item)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanDragItems(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanDragItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanDragItems(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanDragItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanReorderItems(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanReorderItems());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CanReorderItems(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CanReorderItems(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplate(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DataTemplate>(this->shim().ItemTemplate());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemTemplate(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplate(*reinterpret_cast<winrt::Windows::UI::Xaml::DataTemplate const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector>(this->shim().ItemTemplateSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemTemplateSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemTemplateSelector(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Style>(this->shim().ItemContainerStyle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerStyle(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerStyle(*reinterpret_cast<winrt::Windows::UI::Xaml::Style const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleSelector(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::StyleSelector>(this->shim().ItemContainerStyleSelector());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerStyleSelector(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerStyleSelector(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::StyleSelector const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerTransitions(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection>(this->shim().ItemContainerTransitions());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemContainerTransitions(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemContainerTransitions(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Animation::TransitionCollection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsSource(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_DragItemsStarting(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DragItemsStarting(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsStartingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DragItemsStarting(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DragItemsStarting(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DragItemsCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DragItemsCompleted(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TreeView, winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsCompletedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DragItemsCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DragItemsCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs>
    {
        int32_t __stdcall get_Node(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().Node());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2>
    {
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs>
    {
        int32_t __stdcall get_DropResult(uint32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::ApplicationModel::DataTransfer::DataPackageOperation>(this->shim().DropResult());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Items(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::Foundation::IInspectable>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs>
    {
        int32_t __stdcall get_Cancel(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(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_Data(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::ApplicationModel::DataTransfer::DataPackage>(this->shim().Data());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Items(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::IInspectable>>(this->shim().Items());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs>
    {
        int32_t __stdcall get_Node(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().Node());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2>
    {
        int32_t __stdcall get_Item(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Item());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::TreeView>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem>
    {
        int32_t __stdcall get_GlyphOpacity(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().GlyphOpacity());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GlyphOpacity(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GlyphOpacity(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GlyphBrush(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Brush>(this->shim().GlyphBrush());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GlyphBrush(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GlyphBrush(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Brush const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExpandedGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().ExpandedGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ExpandedGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ExpandedGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CollapsedGlyph(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().CollapsedGlyph());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_CollapsedGlyph(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CollapsedGlyph(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GlyphSize(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().GlyphSize());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_GlyphSize(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GlyphSize(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExpanded(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExpanded());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsExpanded(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExpanded(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TreeViewItemTemplateSettings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings>(this->shim().TreeViewItemTemplateSettings());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem2>
    {
        int32_t __stdcall get_HasUnrealizedChildren(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasUnrealizedChildren());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HasUnrealizedChildren(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HasUnrealizedChildren(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsSource(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().ItemsSource());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemsSource(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemsSource(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::TreeViewItem>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs>
    {
        int32_t __stdcall get_InvokedItem(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().InvokedItem());
            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_Handled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().Handled());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics>
    {
        int32_t __stdcall get_GlyphOpacityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphOpacityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GlyphBrushProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphBrushProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ExpandedGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CollapsedGlyphProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CollapsedGlyphProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_GlyphSizeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().GlyphSizeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExpandedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsExpandedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TreeViewItemTemplateSettingsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TreeViewItemTemplateSettingsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2>
    {
        int32_t __stdcall get_HasUnrealizedChildrenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HasUnrealizedChildrenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings>
    {
        int32_t __stdcall get_ExpandedGlyphVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Visibility>(this->shim().ExpandedGlyphVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CollapsedGlyphVisibility(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Visibility>(this->shim().CollapsedGlyphVisibility());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Indentation(struct struct_Windows_UI_Xaml_Thickness* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::Thickness>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Thickness>(this->shim().Indentation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DragItemsCount(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().DragItemsCount());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics>
    {
        int32_t __stdcall get_ExpandedGlyphVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ExpandedGlyphVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CollapsedGlyphVisibilityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CollapsedGlyphVisibilityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IndentationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IndentationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DragItemsCountProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DragItemsCountProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewList> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewList>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewListFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewListFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::TreeViewList>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::IInspectable>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Parent(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().Parent());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExpanded(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsExpanded());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsExpanded(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsExpanded(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasChildren(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasChildren());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Depth(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().Depth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasUnrealizedChildren(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().HasUnrealizedChildren());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HasUnrealizedChildren(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HasUnrealizedChildren(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Children(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::TreeViewNode>>(this->shim().Children());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNodeFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNodeFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::TreeViewNode>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DepthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DepthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsExpandedProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsExpandedProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HasChildrenProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HasChildrenProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics>
    {
        int32_t __stdcall get_SelectionModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SelectionModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2>
    {
        int32_t __stdcall get_CanDragItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanDragItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanReorderItemsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanReorderItemsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemTemplateSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemTemplateSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerStyleSelectorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerStyleSelectorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemContainerTransitionsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemContainerTransitionsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemsSourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemsSourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView>
    {
        int32_t __stdcall get_Pane1(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().Pane1());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Pane1(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pane1(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane2(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().Pane2());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Pane2(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pane2(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane1Length(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::GridLength>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::GridLength>(this->shim().Pane1Length());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Pane1Length(struct struct_Windows_UI_Xaml_GridLength value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pane1Length(*reinterpret_cast<winrt::Windows::UI::Xaml::GridLength const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane2Length(struct struct_Windows_UI_Xaml_GridLength* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Xaml::GridLength>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::GridLength>(this->shim().Pane2Length());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Pane2Length(struct struct_Windows_UI_Xaml_GridLength value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Pane2Length(*reinterpret_cast<winrt::Windows::UI::Xaml::GridLength const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PanePriority(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::TwoPaneViewPriority>(this->shim().PanePriority());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_PanePriority(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PanePriority(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TwoPaneViewPriority const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Mode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::TwoPaneViewMode>(this->shim().Mode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_WideModeConfiguration(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::TwoPaneViewWideModeConfiguration>(this->shim().WideModeConfiguration());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_WideModeConfiguration(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().WideModeConfiguration(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TwoPaneViewWideModeConfiguration const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TallModeConfiguration(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::TwoPaneViewTallModeConfiguration>(this->shim().TallModeConfiguration());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_TallModeConfiguration(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().TallModeConfiguration(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::TwoPaneViewTallModeConfiguration const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinWideModeWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinWideModeWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinWideModeWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinWideModeWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinTallModeHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().MinTallModeHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MinTallModeHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MinTallModeHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ModeChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ModeChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::TwoPaneView, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ModeChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ModeChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::TwoPaneView>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics>
    {
        int32_t __stdcall get_Pane1Property(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().Pane1Property());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane2Property(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().Pane2Property());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane1LengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().Pane1LengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Pane2LengthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().Pane2LengthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PanePriorityProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().PanePriorityProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_WideModeConfigurationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().WideModeConfigurationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_TallModeConfigurationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().TallModeConfigurationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinWideModeWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinWideModeWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MinTallModeHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MinTallModeHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IUIElementCollection> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IUIElementCollection>
    {
        int32_t __stdcall Move(uint32_t oldIndex, uint32_t newIndex) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Move(oldIndex, newIndex);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IUserControl> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IUserControl>
    {
        int32_t __stdcall get_Content(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().Content());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Content(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Content(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IUserControlFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IUserControlFactory>
    {
        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<winrt::Windows::UI::Xaml::Controls::UserControl>(this->shim().CreateInstance(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&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 <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IUserControlStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IUserControlStatics>
    {
        int32_t __stdcall get_ContentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid>
    {
        int32_t __stdcall get_ItemHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalChildrenAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalChildrenAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalChildrenAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalChildrenAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalChildrenAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalChildrenAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumns(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaximumRowsOrColumns(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaximumRowsOrColumns(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics>
    {
        int32_t __stdcall get_ItemHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalChildrenAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalChildrenAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumnsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_RowSpanProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().RowSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetRowSpan(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetRowSpan(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetRowSpan(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetRowSpan(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ColumnSpanProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ColumnSpanProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetColumnSpan(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<int32_t>(this->shim().GetColumnSpan(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetColumnSpan(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetColumnSpan(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&element), value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IViewbox> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IViewbox>
    {
        int32_t __stdcall get_Child(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::UIElement>(this->shim().Child());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Child(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Child(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Stretch(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Media::Stretch>(this->shim().Stretch());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Stretch(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stretch(*reinterpret_cast<winrt::Windows::UI::Xaml::Media::Stretch const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchDirection(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::StretchDirection>(this->shim().StretchDirection());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_StretchDirection(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StretchDirection(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::StretchDirection const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IViewboxStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IViewboxStatics>
    {
        int32_t __stdcall get_StretchProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().StretchProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StretchDirectionProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().StretchDirectionProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanel> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanel>
    {
        int32_t __stdcall get_ItemContainerGenerator(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::ItemContainerGenerator>(this->shim().ItemContainerGenerator());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelFactory> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelFactory>
    {
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>
    {
        int32_t __stdcall OnItemsChanged(void* sender, void* args) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnItemsChanged(*reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&sender), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs const*>(&args));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall OnClearChildren() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnClearChildren();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall BringIndexIntoView(int32_t index) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().BringIndexIntoView(index);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected>
    {
        int32_t __stdcall AddInternalChild(void* child) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddInternalChild(*reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&child));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall InsertInternalChild(int32_t index, void* child) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().InsertInternalChild(index, *reinterpret_cast<winrt::Windows::UI::Xaml::UIElement const*>(&child));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall RemoveInternalChildRange(int32_t index, int32_t range) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().RemoveInternalChildRange(index, range);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel>
    {
        int32_t __stdcall get_AreScrollSnapPointsRegular(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().AreScrollSnapPointsRegular());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AreScrollSnapPointsRegular(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AreScrollSnapPointsRegular(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_CleanUpVirtualizedItemEvent(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().CleanUpVirtualizedItemEvent(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_CleanUpVirtualizedItemEvent(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().CleanUpVirtualizedItemEvent(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides>
    {
        int32_t __stdcall OnCleanUpVirtualizedItem(void* e) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().OnCleanUpVirtualizedItem(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const*>(&e));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics>
    {
        int32_t __stdcall get_AreScrollSnapPointsRegularProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AreScrollSnapPointsRegularProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VirtualizationModeProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VirtualizationModeProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetVirtualizationMode(void* element, int32_t* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::VirtualizationMode>(this->shim().GetVirtualizationMode(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetVirtualizationMode(void* element, int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetVirtualizationMode(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&element), *reinterpret_cast<winrt::Windows::UI::Xaml::Controls::VirtualizationMode const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsVirtualizingProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().IsVirtualizingProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetIsVirtualizing(void* o, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().GetIsVirtualizing(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&o)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebView> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebView>
    {
        int32_t __stdcall get_Source(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Source());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Source(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Source(*reinterpret_cast<winrt::Windows::Foundation::Uri const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AllowedScriptNotifyUris(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::Uri>>(this->shim().AllowedScriptNotifyUris());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_AllowedScriptNotifyUris(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AllowedScriptNotifyUris(*reinterpret_cast<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::Uri> const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DataTransferPackage(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::ApplicationModel::DataTransfer::DataPackage>(this->shim().DataTransferPackage());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_LoadCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().LoadCompleted(*reinterpret_cast<winrt::Windows::UI::Xaml::Navigation::LoadCompletedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_LoadCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LoadCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ScriptNotify(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ScriptNotify(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::NotifyEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ScriptNotify(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ScriptNotify(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_NavigationFailed(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NavigationFailed(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::WebViewNavigationFailedEventHandler const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NavigationFailed(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationFailed(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall InvokeScript(void* scriptName, uint32_t __argumentsSize, void** arguments, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<hstring>(this->shim().InvokeScript(*reinterpret_cast<hstring const*>(&scriptName), array_view<hstring const>(reinterpret_cast<hstring const *>(arguments), reinterpret_cast<hstring const *>(arguments) + __argumentsSize)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Navigate(void* source) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Navigate(*reinterpret_cast<winrt::Windows::Foundation::Uri const*>(&source));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall NavigateToString(void* text) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateToString(*reinterpret_cast<hstring const*>(&text));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebView2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebView2>
    {
        int32_t __stdcall get_CanGoBack(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoBack());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoForward(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().CanGoForward());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DocumentTitle(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().DocumentTitle());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_NavigationStarting(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NavigationStarting(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NavigationStarting(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationStarting(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_ContentLoading(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContentLoading(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContentLoading(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContentLoading(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_DOMContentLoaded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().DOMContentLoaded(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_DOMContentLoaded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DOMContentLoaded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall GoForward() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoForward();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GoBack() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().GoBack();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Refresh() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Refresh();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Stop() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Stop();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CapturePreviewToStreamAsync(void* stream, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncAction>(this->shim().CapturePreviewToStreamAsync(*reinterpret_cast<winrt::Windows::Storage::Streams::IRandomAccessStream const*>(&stream)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall InvokeScriptAsync(void* scriptName, void* arguments, void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<hstring>>(this->shim().InvokeScriptAsync(*reinterpret_cast<hstring const*>(&scriptName), *reinterpret_cast<winrt::Windows::Foundation::Collections::IIterable<hstring> const*>(&arguments)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall CaptureSelectedContentToDataPackageAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::ApplicationModel::DataTransfer::DataPackage>>(this->shim().CaptureSelectedContentToDataPackageAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall NavigateToLocalStreamUri(void* source, void* streamResolver) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateToLocalStreamUri(*reinterpret_cast<winrt::Windows::Foundation::Uri const*>(&source), *reinterpret_cast<winrt::Windows::Web::IUriToStreamResolver const*>(&streamResolver));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall BuildLocalStreamUri(void* contentIdentifier, void* relativePath, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::Uri>(this->shim().BuildLocalStreamUri(*reinterpret_cast<hstring const*>(&contentIdentifier), *reinterpret_cast<hstring const*>(&relativePath)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultBackgroundColor(struct struct_Windows_UI_Color* value) noexcept final try
        {
            zero_abi<winrt::Windows::UI::Color>(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Color>(this->shim().DefaultBackgroundColor());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_DefaultBackgroundColor(struct struct_Windows_UI_Color value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().DefaultBackgroundColor(*reinterpret_cast<winrt::Windows::UI::Color const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_NavigationCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NavigationCompleted(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NavigationCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigationCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_FrameNavigationStarting(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FrameNavigationStarting(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FrameNavigationStarting(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameNavigationStarting(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_FrameContentLoading(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FrameContentLoading(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FrameContentLoading(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameContentLoading(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_FrameDOMContentLoaded(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FrameDOMContentLoaded(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FrameDOMContentLoaded(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameDOMContentLoaded(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_FrameNavigationCompleted(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().FrameNavigationCompleted(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_FrameNavigationCompleted(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().FrameNavigationCompleted(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_LongRunningScriptDetected(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().LongRunningScriptDetected(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_LongRunningScriptDetected(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().LongRunningScriptDetected(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_UnsafeContentWarningDisplaying(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().UnsafeContentWarningDisplaying(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_UnsafeContentWarningDisplaying(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsafeContentWarningDisplaying(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_UnviewableContentIdentified(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().UnviewableContentIdentified(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_UnviewableContentIdentified(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnviewableContentIdentified(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall NavigateWithHttpRequestMessage(void* requestMessage) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NavigateWithHttpRequestMessage(*reinterpret_cast<winrt::Windows::Web::Http::HttpRequestMessage const*>(&requestMessage));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Focus(int32_t value, bool* result) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *result = detach_from<bool>(this->shim().Focus(*reinterpret_cast<winrt::Windows::UI::Xaml::FocusState const*>(&value)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebView3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebView3>
    {
        int32_t __stdcall get_ContainsFullScreenElement(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().ContainsFullScreenElement());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_ContainsFullScreenElementChanged(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().ContainsFullScreenElementChanged(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::Foundation::IInspectable> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_ContainsFullScreenElementChanged(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ContainsFullScreenElementChanged(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebView4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebView4>
    {
        int32_t __stdcall get_ExecutionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::WebViewExecutionMode>(this->shim().ExecutionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DeferredPermissionRequests(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest>>(this->shim().DeferredPermissionRequests());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Settings(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::WebViewSettings>(this->shim().Settings());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall add_UnsupportedUriSchemeIdentified(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().UnsupportedUriSchemeIdentified(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_UnsupportedUriSchemeIdentified(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().UnsupportedUriSchemeIdentified(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_NewWindowRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().NewWindowRequested(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_NewWindowRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().NewWindowRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall add_PermissionRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().PermissionRequested(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_PermissionRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().PermissionRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
        int32_t __stdcall AddWebAllowedObject(void* name, void* pObject) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().AddWebAllowedObject(*reinterpret_cast<hstring const*>(&name), *reinterpret_cast<winrt::Windows::Foundation::IInspectable const*>(&pObject));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall DeferredPermissionRequestById(uint32_t id, void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest>(this->shim().DeferredPermissionRequestById(id));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebView5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebView5>
    {
        int32_t __stdcall get_XYFocusLeft(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusLeft());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusLeft(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusLeft(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusRight(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusRight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusRight(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusRight(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusUp(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusUp());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusUp(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusUp(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusDown(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyObject>(this->shim().XYFocusDown());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_XYFocusDown(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().XYFocusDown(*reinterpret_cast<winrt::Windows::UI::Xaml::DependencyObject const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebView6> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebView6>
    {
        int32_t __stdcall add_SeparateProcessLost(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().SeparateProcessLost(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_SeparateProcessLost(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SeparateProcessLost(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebView7> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebView7>
    {
        int32_t __stdcall add_WebResourceRequested(void* handler, winrt::event_token* token) noexcept final try
        {
            zero_abi<winrt::event_token>(token);
            typename D::abi_guard guard(this->shim());
            *token = detach_from<winrt::event_token>(this->shim().WebResourceRequested(*reinterpret_cast<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::UI::Xaml::Controls::WebView, winrt::Windows::UI::Xaml::Controls::WebViewWebResourceRequestedEventArgs> const*>(&handler)));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall remove_WebResourceRequested(winrt::event_token token) noexcept final
        {
            typename D::abi_guard guard(this->shim());
            this->shim().WebResourceRequested(*reinterpret_cast<winrt::event_token const*>(&token));
            return 0;
        }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewBrush> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewBrush>
    {
        int32_t __stdcall get_SourceName(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().SourceName());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_SourceName(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SourceName(*reinterpret_cast<hstring const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Redraw() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Redraw();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall SetSource(void* source) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().SetSource(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::WebView const*>(&source));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewBrushStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewBrushStatics>
    {
        int32_t __stdcall get_SourceNameProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SourceNameProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PermissionType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::WebViewPermissionType>(this->shim().PermissionType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        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 Allow() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Allow();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Deny() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Deny();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewFactory4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewFactory4>
    {
        int32_t __stdcall CreateInstanceWithExecutionMode(int32_t executionMode, void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::WebView>(this->shim().CreateInstanceWithExecutionMode(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::WebViewExecutionMode const*>(&executionMode)));
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs>
    {
        int32_t __stdcall get_ExecutionTime(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().ExecutionTime());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_StopPageScriptExecution(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().StopPageScriptExecution());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_StopPageScriptExecution(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().StopPageScriptExecution(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsSuccess(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsSuccess());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_WebErrorStatus(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Web::WebErrorStatus>(this->shim().WebErrorStatus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_WebErrorStatus(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Web::WebErrorStatus>(this->shim().WebErrorStatus());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Uri());
            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<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Referrer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Referrer());
            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<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_PermissionType(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::WebViewPermissionType>(this->shim().PermissionType());
            return 0;
        }
        catch (...) { return to_hresult(); }
        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_State(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::WebViewPermissionState>(this->shim().State());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Defer() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Defer();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Allow() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Allow();
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall Deny() noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Deny();
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs>
    {
        int32_t __stdcall get_PermissionRequest(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::WebViewPermissionRequest>(this->shim().PermissionRequest());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewSeparateProcessLostEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewSeparateProcessLostEventArgs>
    {
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewSettings> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewSettings>
    {
        int32_t __stdcall get_IsJavaScriptEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsJavaScriptEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsJavaScriptEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsJavaScriptEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_IsIndexedDBEnabled(bool* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<bool>(this->shim().IsIndexedDBEnabled());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_IsIndexedDBEnabled(bool value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().IsIndexedDBEnabled(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics>
    {
        int32_t __stdcall get_AnyScriptNotifyUri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::Uri>>(this->shim().AnyScriptNotifyUri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_SourceProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().SourceProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_AllowedScriptNotifyUrisProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().AllowedScriptNotifyUrisProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DataTransferPackageProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DataTransferPackageProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics2>
    {
        int32_t __stdcall get_CanGoBackProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoBackProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_CanGoForwardProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().CanGoForwardProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DocumentTitleProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DocumentTitleProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_DefaultBackgroundColorProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().DefaultBackgroundColorProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics3> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics3>
    {
        int32_t __stdcall get_ContainsFullScreenElementProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ContainsFullScreenElementProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics4> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics4>
    {
        int32_t __stdcall get_DefaultExecutionMode(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::WebViewExecutionMode>(this->shim().DefaultExecutionMode());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall ClearTemporaryWebDataAsync(void** operation) noexcept final try
        {
            clear_abi(operation);
            typename D::abi_guard guard(this->shim());
            *operation = detach_from<winrt::Windows::Foundation::IAsyncAction>(this->shim().ClearTemporaryWebDataAsync());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics5> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewStatics5>
    {
        int32_t __stdcall get_XYFocusLeftProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusLeftProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusRightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusRightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusUpProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusUpProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_XYFocusDownProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().XYFocusDownProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Uri());
            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<bool>(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(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs>
    {
        int32_t __stdcall get_Uri(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Uri());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Referrer(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Foundation::Uri>(this->shim().Referrer());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2>
    {
        int32_t __stdcall get_MediaType(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<hstring>(this->shim().MediaType());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs>
    {
        int32_t __stdcall get_Request(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Web::Http::HttpRequestMessage>(this->shim().Request());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Response(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::Web::Http::HttpResponseMessage>(this->shim().Response());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Response(void* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Response(*reinterpret_cast<winrt::Windows::Web::Http::HttpResponseMessage const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall GetDeferral(void** result) noexcept final try
        {
            clear_abi(result);
            typename D::abi_guard guard(this->shim());
            *result = detach_from<winrt::Windows::Foundation::Deferral>(this->shim().GetDeferral());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWrapGrid>
    {
        int32_t __stdcall get_ItemWidth(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemWidth());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemWidth(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemWidth(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemHeight(double* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<double>(this->shim().ItemHeight());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_ItemHeight(double value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().ItemHeight(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_Orientation(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::Controls::Orientation>(this->shim().Orientation());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_Orientation(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().Orientation(*reinterpret_cast<winrt::Windows::UI::Xaml::Controls::Orientation const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalChildrenAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::HorizontalAlignment>(this->shim().HorizontalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_HorizontalChildrenAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().HorizontalChildrenAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::HorizontalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalChildrenAlignment(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::VerticalAlignment>(this->shim().VerticalChildrenAlignment());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_VerticalChildrenAlignment(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().VerticalChildrenAlignment(*reinterpret_cast<winrt::Windows::UI::Xaml::VerticalAlignment const*>(&value));
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumns(int32_t* value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            *value = detach_from<int32_t>(this->shim().MaximumRowsOrColumns());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall put_MaximumRowsOrColumns(int32_t value) noexcept final try
        {
            typename D::abi_guard guard(this->shim());
            this->shim().MaximumRowsOrColumns(value);
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
#ifndef WINRT_LEAN_AND_MEAN
    template <typename D>
    struct produce<D, winrt::Windows::UI::Xaml::Controls::IWrapGridStatics> : produce_base<D, winrt::Windows::UI::Xaml::Controls::IWrapGridStatics>
    {
        int32_t __stdcall get_ItemWidthProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemWidthProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_ItemHeightProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().ItemHeightProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_OrientationProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().OrientationProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_HorizontalChildrenAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().HorizontalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_VerticalChildrenAlignmentProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().VerticalChildrenAlignmentProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
        int32_t __stdcall get_MaximumRowsOrColumnsProperty(void** value) noexcept final try
        {
            clear_abi(value);
            typename D::abi_guard guard(this->shim());
            *value = detach_from<winrt::Windows::UI::Xaml::DependencyProperty>(this->shim().MaximumRowsOrColumnsProperty());
            return 0;
        }
        catch (...) { return to_hresult(); }
    };
#endif
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides>
{
    auto OnClosed(winrt::Windows::Foundation::IInspectable const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnClosed(e);
        }

        return this->shim().OnClosed(e);
    }
    auto OnOpened(winrt::Windows::Foundation::IInspectable const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnOpened(e);
        }

        return this->shim().OnOpened(e);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3>
{
    auto OnClosing(winrt::Windows::Foundation::IInspectable const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnClosing(e);
        }

        return this->shim().OnClosing(e);
    }
    auto OnOpening(winrt::Windows::Foundation::IInspectable const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnOpening(e);
        }

        return this->shim().OnOpening(e);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides>
{
    auto OnDropDownClosed(winrt::Windows::Foundation::IInspectable const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnDropDownClosed(e);
        }

        return this->shim().OnDropDownClosed(e);
    }
    auto OnDropDownOpened(winrt::Windows::Foundation::IInspectable const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnDropDownOpened(e);
        }

        return this->shim().OnDropDownOpened(e);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>
{
    auto OnContentChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnContentChanged(oldContent, newContent);
        }

        return this->shim().OnContentChanged(oldContent, newContent);
    }
    auto OnContentTemplateChanged(winrt::Windows::UI::Xaml::DataTemplate const& oldContentTemplate, winrt::Windows::UI::Xaml::DataTemplate const& newContentTemplate)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
        }

        return this->shim().OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
    }
    auto OnContentTemplateSelectorChanged(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
        }

        return this->shim().OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides>
{
    auto OnContentTemplateChanged(winrt::Windows::UI::Xaml::DataTemplate const& oldContentTemplate, winrt::Windows::UI::Xaml::DataTemplate const& newContentTemplate)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
        }

        return this->shim().OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
    }
    auto OnContentTemplateSelectorChanged(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
        }

        return this->shim().OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>
{
    auto OnPointerEntered(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnPointerEntered(e);
        }

        return this->shim().OnPointerEntered(e);
    }
    auto OnPointerPressed(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnPointerPressed(e);
        }

        return this->shim().OnPointerPressed(e);
    }
    auto OnPointerMoved(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnPointerMoved(e);
        }

        return this->shim().OnPointerMoved(e);
    }
    auto OnPointerReleased(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnPointerReleased(e);
        }

        return this->shim().OnPointerReleased(e);
    }
    auto OnPointerExited(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnPointerExited(e);
        }

        return this->shim().OnPointerExited(e);
    }
    auto OnPointerCaptureLost(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnPointerCaptureLost(e);
        }

        return this->shim().OnPointerCaptureLost(e);
    }
    auto OnPointerCanceled(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnPointerCanceled(e);
        }

        return this->shim().OnPointerCanceled(e);
    }
    auto OnPointerWheelChanged(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnPointerWheelChanged(e);
        }

        return this->shim().OnPointerWheelChanged(e);
    }
    auto OnTapped(winrt::Windows::UI::Xaml::Input::TappedRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnTapped(e);
        }

        return this->shim().OnTapped(e);
    }
    auto OnDoubleTapped(winrt::Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnDoubleTapped(e);
        }

        return this->shim().OnDoubleTapped(e);
    }
    auto OnHolding(winrt::Windows::UI::Xaml::Input::HoldingRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnHolding(e);
        }

        return this->shim().OnHolding(e);
    }
    auto OnRightTapped(winrt::Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnRightTapped(e);
        }

        return this->shim().OnRightTapped(e);
    }
    auto OnManipulationStarting(winrt::Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnManipulationStarting(e);
        }

        return this->shim().OnManipulationStarting(e);
    }
    auto OnManipulationInertiaStarting(winrt::Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnManipulationInertiaStarting(e);
        }

        return this->shim().OnManipulationInertiaStarting(e);
    }
    auto OnManipulationStarted(winrt::Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnManipulationStarted(e);
        }

        return this->shim().OnManipulationStarted(e);
    }
    auto OnManipulationDelta(winrt::Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnManipulationDelta(e);
        }

        return this->shim().OnManipulationDelta(e);
    }
    auto OnManipulationCompleted(winrt::Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnManipulationCompleted(e);
        }

        return this->shim().OnManipulationCompleted(e);
    }
    auto OnKeyUp(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnKeyUp(e);
        }

        return this->shim().OnKeyUp(e);
    }
    auto OnKeyDown(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnKeyDown(e);
        }

        return this->shim().OnKeyDown(e);
    }
    auto OnGotFocus(winrt::Windows::UI::Xaml::RoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnGotFocus(e);
        }

        return this->shim().OnGotFocus(e);
    }
    auto OnLostFocus(winrt::Windows::UI::Xaml::RoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnLostFocus(e);
        }

        return this->shim().OnLostFocus(e);
    }
    auto OnDragEnter(winrt::Windows::UI::Xaml::DragEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnDragEnter(e);
        }

        return this->shim().OnDragEnter(e);
    }
    auto OnDragLeave(winrt::Windows::UI::Xaml::DragEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnDragLeave(e);
        }

        return this->shim().OnDragLeave(e);
    }
    auto OnDragOver(winrt::Windows::UI::Xaml::DragEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnDragOver(e);
        }

        return this->shim().OnDragOver(e);
    }
    auto OnDrop(winrt::Windows::UI::Xaml::DragEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnDrop(e);
        }

        return this->shim().OnDrop(e);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>
{
    auto OnPreviewKeyDown(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnPreviewKeyDown(e);
        }

        return this->shim().OnPreviewKeyDown(e);
    }
    auto OnPreviewKeyUp(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnPreviewKeyUp(e);
        }

        return this->shim().OnPreviewKeyUp(e);
    }
    auto OnCharacterReceived(winrt::Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnCharacterReceived(e);
        }

        return this->shim().OnCharacterReceived(e);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>
{
    auto SelectTemplateCore(winrt::Windows::Foundation::IInspectable const& item, winrt::Windows::UI::Xaml::DependencyObject const& container)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.SelectTemplateCore(item, container);
        }

        return this->shim().SelectTemplateCore(item, container);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>
{
    auto SelectTemplateCore(winrt::Windows::Foundation::IInspectable const& item)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.SelectTemplateCore(item);
        }

        return this->shim().SelectTemplateCore(item);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides>
{
    auto SelectGroupStyleCore(winrt::Windows::Foundation::IInspectable const& group, uint32_t level)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.SelectGroupStyleCore(group, level);
        }

        return this->shim().SelectGroupStyleCore(group, level);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides>
{
    auto CreateInkDrawingAttributesCore(winrt::Windows::UI::Xaml::Media::Brush const& brush, double strokeWidth)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.CreateInkDrawingAttributesCore(brush, strokeWidth);
        }

        return this->shim().CreateInkDrawingAttributesCore(brush, strokeWidth);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>
{
    auto IsItemItsOwnContainerOverride(winrt::Windows::Foundation::IInspectable const& item)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.IsItemItsOwnContainerOverride(item);
        }

        return this->shim().IsItemItsOwnContainerOverride(item);
    }
    auto GetContainerForItemOverride()
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.GetContainerForItemOverride();
        }

        return this->shim().GetContainerForItemOverride();
    }
    auto ClearContainerForItemOverride(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::Foundation::IInspectable const& item)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.ClearContainerForItemOverride(element, item);
        }

        return this->shim().ClearContainerForItemOverride(element, item);
    }
    auto PrepareContainerForItemOverride(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::Foundation::IInspectable const& item)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.PrepareContainerForItemOverride(element, item);
        }

        return this->shim().PrepareContainerForItemOverride(element, item);
    }
    auto OnItemsChanged(winrt::Windows::Foundation::IInspectable const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnItemsChanged(e);
        }

        return this->shim().OnItemsChanged(e);
    }
    auto OnItemContainerStyleChanged(winrt::Windows::UI::Xaml::Style const& oldItemContainerStyle, winrt::Windows::UI::Xaml::Style const& newItemContainerStyle)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnItemContainerStyleChanged(oldItemContainerStyle, newItemContainerStyle);
        }

        return this->shim().OnItemContainerStyleChanged(oldItemContainerStyle, newItemContainerStyle);
    }
    auto OnItemContainerStyleSelectorChanged(winrt::Windows::UI::Xaml::Controls::StyleSelector const& oldItemContainerStyleSelector, winrt::Windows::UI::Xaml::Controls::StyleSelector const& newItemContainerStyleSelector)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnItemContainerStyleSelectorChanged(oldItemContainerStyleSelector, newItemContainerStyleSelector);
        }

        return this->shim().OnItemContainerStyleSelectorChanged(oldItemContainerStyleSelector, newItemContainerStyleSelector);
    }
    auto OnItemTemplateChanged(winrt::Windows::UI::Xaml::DataTemplate const& oldItemTemplate, winrt::Windows::UI::Xaml::DataTemplate const& newItemTemplate)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnItemTemplateChanged(oldItemTemplate, newItemTemplate);
        }

        return this->shim().OnItemTemplateChanged(oldItemTemplate, newItemTemplate);
    }
    auto OnItemTemplateSelectorChanged(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& oldItemTemplateSelector, winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& newItemTemplateSelector)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnItemTemplateSelectorChanged(oldItemTemplateSelector, newItemTemplateSelector);
        }

        return this->shim().OnItemTemplateSelectorChanged(oldItemTemplateSelector, newItemTemplateSelector);
    }
    auto OnGroupStyleSelectorChanged(winrt::Windows::UI::Xaml::Controls::GroupStyleSelector const& oldGroupStyleSelector, winrt::Windows::UI::Xaml::Controls::GroupStyleSelector const& newGroupStyleSelector)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnGroupStyleSelectorChanged(oldGroupStyleSelector, newGroupStyleSelector);
        }

        return this->shim().OnGroupStyleSelectorChanged(oldGroupStyleSelector, newGroupStyleSelector);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IPageOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IPageOverrides>
{
    auto OnNavigatedFrom(winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnNavigatedFrom(e);
        }

        return this->shim().OnNavigatedFrom(e);
    }
    auto OnNavigatedTo(winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnNavigatedTo(e);
        }

        return this->shim().OnNavigatedTo(e);
    }
    auto OnNavigatingFrom(winrt::Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnNavigatingFrom(e);
        }

        return this->shim().OnNavigatingFrom(e);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides>
{
    auto SelectStyleCore(winrt::Windows::Foundation::IInspectable const& item, winrt::Windows::UI::Xaml::DependencyObject const& container)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.SelectStyleCore(item, container);
        }

        return this->shim().SelectStyleCore(item, container);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides>
{
    auto OnToggled()
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnToggled();
        }

        return this->shim().OnToggled();
    }
    auto OnOnContentChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnOnContentChanged(oldContent, newContent);
        }

        return this->shim().OnOnContentChanged(oldContent, newContent);
    }
    auto OnOffContentChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnOffContentChanged(oldContent, newContent);
        }

        return this->shim().OnOffContentChanged(oldContent, newContent);
    }
    auto OnHeaderChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnHeaderChanged(oldContent, newContent);
        }

        return this->shim().OnHeaderChanged(oldContent, newContent);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides>
{
    auto OnItemsChanged(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs const& args)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnItemsChanged(sender, args);
        }

        return this->shim().OnItemsChanged(sender, args);
    }
    auto OnClearChildren()
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnClearChildren();
        }

        return this->shim().OnClearChildren();
    }
    auto BringIndexIntoView(int32_t index)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.BringIndexIntoView(index);
        }

        return this->shim().BringIndexIntoView(index);
    }
};
template <typename T, typename D>
struct WINRT_IMPL_EMPTY_BASES produce_dispatch_to_overridable<T, D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides>
    : produce_dispatch_to_overridable_base<T, D, winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides>
{
    auto OnCleanUpVirtualizedItem(winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const& e)
    {
        if (auto overridable = this->shim_overridable())
        {
            return overridable.OnCleanUpVirtualizedItem(e);
        }

        return this->shim().OnCleanUpVirtualizedItem(e);
    }
};
}
WINRT_EXPORT namespace winrt::Windows::UI::Xaml::Controls
{
    constexpr auto operator|(DisabledFormattingAccelerators const left, DisabledFormattingAccelerators const right) noexcept
    {
        return static_cast<DisabledFormattingAccelerators>(impl::to_underlying_type(left) | impl::to_underlying_type(right));
    }
    constexpr auto operator|=(DisabledFormattingAccelerators& left, DisabledFormattingAccelerators const right) noexcept
    {
        left = left | right;
        return left;
    }
    constexpr auto operator&(DisabledFormattingAccelerators const left, DisabledFormattingAccelerators const right) noexcept
    {
        return static_cast<DisabledFormattingAccelerators>(impl::to_underlying_type(left) & impl::to_underlying_type(right));
    }
    constexpr auto operator&=(DisabledFormattingAccelerators& left, DisabledFormattingAccelerators const right) noexcept
    {
        left = left & right;
        return left;
    }
    constexpr auto operator~(DisabledFormattingAccelerators const value) noexcept
    {
        return static_cast<DisabledFormattingAccelerators>(~impl::to_underlying_type(value));
    }
    constexpr auto operator^(DisabledFormattingAccelerators const left, DisabledFormattingAccelerators const right) noexcept
    {
        return static_cast<DisabledFormattingAccelerators>(impl::to_underlying_type(left) ^ impl::to_underlying_type(right));
    }
    constexpr auto operator^=(DisabledFormattingAccelerators& left, DisabledFormattingAccelerators const right) noexcept
    {
        left = left ^ right;
        return left;
    }
    inline AppBar::AppBar()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<AppBar, IAppBarFactory>([&](IAppBarFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto AppBar::IsOpenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarStatics const&), AppBar, IAppBarStatics>([](IAppBarStatics const& f) { return f.IsOpenProperty(); });
    }
    inline auto AppBar::IsStickyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarStatics const&), AppBar, IAppBarStatics>([](IAppBarStatics const& f) { return f.IsStickyProperty(); });
    }
    inline auto AppBar::ClosedDisplayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarStatics2 const&), AppBar, IAppBarStatics2>([](IAppBarStatics2 const& f) { return f.ClosedDisplayModeProperty(); });
    }
    inline auto AppBar::LightDismissOverlayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarStatics4 const&), AppBar, IAppBarStatics4>([](IAppBarStatics4 const& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline AppBarButton::AppBarButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<AppBarButton, IAppBarButtonFactory>([&](IAppBarButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto AppBarButton::LabelProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarButtonStatics const&), AppBarButton, IAppBarButtonStatics>([](IAppBarButtonStatics const& f) { return f.LabelProperty(); });
    }
    inline auto AppBarButton::IconProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarButtonStatics const&), AppBarButton, IAppBarButtonStatics>([](IAppBarButtonStatics const& f) { return f.IconProperty(); });
    }
    inline auto AppBarButton::IsCompactProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarButtonStatics const&), AppBarButton, IAppBarButtonStatics>([](IAppBarButtonStatics const& f) { return f.IsCompactProperty(); });
    }
    inline auto AppBarButton::LabelPositionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarButtonStatics3 const&), AppBarButton, IAppBarButtonStatics3>([](IAppBarButtonStatics3 const& f) { return f.LabelPositionProperty(); });
    }
    inline auto AppBarButton::IsInOverflowProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarButtonStatics3 const&), AppBarButton, IAppBarButtonStatics3>([](IAppBarButtonStatics3 const& f) { return f.IsInOverflowProperty(); });
    }
    inline auto AppBarButton::DynamicOverflowOrderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarButtonStatics3 const&), AppBarButton, IAppBarButtonStatics3>([](IAppBarButtonStatics3 const& f) { return f.DynamicOverflowOrderProperty(); });
    }
    inline auto AppBarButton::KeyboardAcceleratorTextOverrideProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarButtonStatics4 const&), AppBarButton, IAppBarButtonStatics4>([](IAppBarButtonStatics4 const& f) { return f.KeyboardAcceleratorTextOverrideProperty(); });
    }
    inline AppBarElementContainer::AppBarElementContainer()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<AppBarElementContainer, IAppBarElementContainerFactory>([&](IAppBarElementContainerFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto AppBarElementContainer::IsCompactProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarElementContainerStatics const&), AppBarElementContainer, IAppBarElementContainerStatics>([](IAppBarElementContainerStatics const& f) { return f.IsCompactProperty(); });
    }
    inline auto AppBarElementContainer::IsInOverflowProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarElementContainerStatics const&), AppBarElementContainer, IAppBarElementContainerStatics>([](IAppBarElementContainerStatics const& f) { return f.IsInOverflowProperty(); });
    }
    inline auto AppBarElementContainer::DynamicOverflowOrderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarElementContainerStatics const&), AppBarElementContainer, IAppBarElementContainerStatics>([](IAppBarElementContainerStatics const& f) { return f.DynamicOverflowOrderProperty(); });
    }
    inline AppBarSeparator::AppBarSeparator()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<AppBarSeparator, IAppBarSeparatorFactory>([&](IAppBarSeparatorFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto AppBarSeparator::IsCompactProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarSeparatorStatics const&), AppBarSeparator, IAppBarSeparatorStatics>([](IAppBarSeparatorStatics const& f) { return f.IsCompactProperty(); });
    }
    inline auto AppBarSeparator::IsInOverflowProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarSeparatorStatics3 const&), AppBarSeparator, IAppBarSeparatorStatics3>([](IAppBarSeparatorStatics3 const& f) { return f.IsInOverflowProperty(); });
    }
    inline auto AppBarSeparator::DynamicOverflowOrderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarSeparatorStatics3 const&), AppBarSeparator, IAppBarSeparatorStatics3>([](IAppBarSeparatorStatics3 const& f) { return f.DynamicOverflowOrderProperty(); });
    }
    inline AppBarToggleButton::AppBarToggleButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<AppBarToggleButton, IAppBarToggleButtonFactory>([&](IAppBarToggleButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto AppBarToggleButton::LabelProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarToggleButtonStatics const&), AppBarToggleButton, IAppBarToggleButtonStatics>([](IAppBarToggleButtonStatics const& f) { return f.LabelProperty(); });
    }
    inline auto AppBarToggleButton::IconProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarToggleButtonStatics const&), AppBarToggleButton, IAppBarToggleButtonStatics>([](IAppBarToggleButtonStatics const& f) { return f.IconProperty(); });
    }
    inline auto AppBarToggleButton::IsCompactProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarToggleButtonStatics const&), AppBarToggleButton, IAppBarToggleButtonStatics>([](IAppBarToggleButtonStatics const& f) { return f.IsCompactProperty(); });
    }
    inline auto AppBarToggleButton::LabelPositionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarToggleButtonStatics3 const&), AppBarToggleButton, IAppBarToggleButtonStatics3>([](IAppBarToggleButtonStatics3 const& f) { return f.LabelPositionProperty(); });
    }
    inline auto AppBarToggleButton::IsInOverflowProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarToggleButtonStatics3 const&), AppBarToggleButton, IAppBarToggleButtonStatics3>([](IAppBarToggleButtonStatics3 const& f) { return f.IsInOverflowProperty(); });
    }
    inline auto AppBarToggleButton::DynamicOverflowOrderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarToggleButtonStatics3 const&), AppBarToggleButton, IAppBarToggleButtonStatics3>([](IAppBarToggleButtonStatics3 const& f) { return f.DynamicOverflowOrderProperty(); });
    }
    inline auto AppBarToggleButton::KeyboardAcceleratorTextOverrideProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAppBarToggleButtonStatics4 const&), AppBarToggleButton, IAppBarToggleButtonStatics4>([](IAppBarToggleButtonStatics4 const& f) { return f.KeyboardAcceleratorTextOverrideProperty(); });
    }
    inline AutoSuggestBox::AutoSuggestBox() :
        AutoSuggestBox(impl::call_factory_cast<AutoSuggestBox(*)(winrt::Windows::Foundation::IActivationFactory const&), AutoSuggestBox>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<AutoSuggestBox>(); }))
    {
    }
    inline auto AutoSuggestBox::MaxSuggestionListHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics const&), AutoSuggestBox, IAutoSuggestBoxStatics>([](IAutoSuggestBoxStatics const& f) { return f.MaxSuggestionListHeightProperty(); });
    }
    inline auto AutoSuggestBox::IsSuggestionListOpenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics const&), AutoSuggestBox, IAutoSuggestBoxStatics>([](IAutoSuggestBoxStatics const& f) { return f.IsSuggestionListOpenProperty(); });
    }
    inline auto AutoSuggestBox::TextMemberPathProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics const&), AutoSuggestBox, IAutoSuggestBoxStatics>([](IAutoSuggestBoxStatics const& f) { return f.TextMemberPathProperty(); });
    }
    inline auto AutoSuggestBox::TextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics const&), AutoSuggestBox, IAutoSuggestBoxStatics>([](IAutoSuggestBoxStatics const& f) { return f.TextProperty(); });
    }
    inline auto AutoSuggestBox::UpdateTextOnSelectProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics const&), AutoSuggestBox, IAutoSuggestBoxStatics>([](IAutoSuggestBoxStatics const& f) { return f.UpdateTextOnSelectProperty(); });
    }
    inline auto AutoSuggestBox::PlaceholderTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics const&), AutoSuggestBox, IAutoSuggestBoxStatics>([](IAutoSuggestBoxStatics const& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto AutoSuggestBox::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics const&), AutoSuggestBox, IAutoSuggestBoxStatics>([](IAutoSuggestBoxStatics const& f) { return f.HeaderProperty(); });
    }
    inline auto AutoSuggestBox::AutoMaximizeSuggestionAreaProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics const&), AutoSuggestBox, IAutoSuggestBoxStatics>([](IAutoSuggestBoxStatics const& f) { return f.AutoMaximizeSuggestionAreaProperty(); });
    }
    inline auto AutoSuggestBox::TextBoxStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics const&), AutoSuggestBox, IAutoSuggestBoxStatics>([](IAutoSuggestBoxStatics const& f) { return f.TextBoxStyleProperty(); });
    }
    inline auto AutoSuggestBox::QueryIconProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics2 const&), AutoSuggestBox, IAutoSuggestBoxStatics2>([](IAutoSuggestBoxStatics2 const& f) { return f.QueryIconProperty(); });
    }
    inline auto AutoSuggestBox::LightDismissOverlayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics3 const&), AutoSuggestBox, IAutoSuggestBoxStatics3>([](IAutoSuggestBoxStatics3 const& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline auto AutoSuggestBox::DescriptionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxStatics4 const&), AutoSuggestBox, IAutoSuggestBoxStatics4>([](IAutoSuggestBoxStatics4 const& f) { return f.DescriptionProperty(); });
    }
    inline AutoSuggestBoxQuerySubmittedEventArgs::AutoSuggestBoxQuerySubmittedEventArgs() :
        AutoSuggestBoxQuerySubmittedEventArgs(impl::call_factory_cast<AutoSuggestBoxQuerySubmittedEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), AutoSuggestBoxQuerySubmittedEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<AutoSuggestBoxQuerySubmittedEventArgs>(); }))
    {
    }
    inline AutoSuggestBoxSuggestionChosenEventArgs::AutoSuggestBoxSuggestionChosenEventArgs() :
        AutoSuggestBoxSuggestionChosenEventArgs(impl::call_factory_cast<AutoSuggestBoxSuggestionChosenEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), AutoSuggestBoxSuggestionChosenEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<AutoSuggestBoxSuggestionChosenEventArgs>(); }))
    {
    }
    inline AutoSuggestBoxTextChangedEventArgs::AutoSuggestBoxTextChangedEventArgs() :
        AutoSuggestBoxTextChangedEventArgs(impl::call_factory_cast<AutoSuggestBoxTextChangedEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), AutoSuggestBoxTextChangedEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<AutoSuggestBoxTextChangedEventArgs>(); }))
    {
    }
    inline auto AutoSuggestBoxTextChangedEventArgs::ReasonProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IAutoSuggestBoxTextChangedEventArgsStatics const&), AutoSuggestBoxTextChangedEventArgs, IAutoSuggestBoxTextChangedEventArgsStatics>([](IAutoSuggestBoxTextChangedEventArgsStatics const& f) { return f.ReasonProperty(); });
    }
    inline BackClickEventArgs::BackClickEventArgs() :
        BackClickEventArgs(impl::call_factory_cast<BackClickEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), BackClickEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<BackClickEventArgs>(); }))
    {
    }
    inline BitmapIcon::BitmapIcon()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<BitmapIcon, IBitmapIconFactory>([&](IBitmapIconFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto BitmapIcon::UriSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IBitmapIconStatics const&), BitmapIcon, IBitmapIconStatics>([](IBitmapIconStatics const& f) { return f.UriSourceProperty(); });
    }
    inline auto BitmapIcon::ShowAsMonochromeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IBitmapIconStatics2 const&), BitmapIcon, IBitmapIconStatics2>([](IBitmapIconStatics2 const& f) { return f.ShowAsMonochromeProperty(); });
    }
    inline BitmapIconSource::BitmapIconSource()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<BitmapIconSource, IBitmapIconSourceFactory>([&](IBitmapIconSourceFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto BitmapIconSource::UriSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IBitmapIconSourceStatics const&), BitmapIconSource, IBitmapIconSourceStatics>([](IBitmapIconSourceStatics const& f) { return f.UriSourceProperty(); });
    }
    inline auto BitmapIconSource::ShowAsMonochromeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IBitmapIconSourceStatics const&), BitmapIconSource, IBitmapIconSourceStatics>([](IBitmapIconSourceStatics const& f) { return f.ShowAsMonochromeProperty(); });
    }
    inline Border::Border() :
        Border(impl::call_factory_cast<Border(*)(winrt::Windows::Foundation::IActivationFactory const&), Border>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<Border>(); }))
    {
    }
    inline auto Border::BorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IBorderStatics const&), Border, IBorderStatics>([](IBorderStatics const& f) { return f.BorderBrushProperty(); });
    }
    inline auto Border::BorderThicknessProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IBorderStatics const&), Border, IBorderStatics>([](IBorderStatics const& f) { return f.BorderThicknessProperty(); });
    }
    inline auto Border::BackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IBorderStatics const&), Border, IBorderStatics>([](IBorderStatics const& f) { return f.BackgroundProperty(); });
    }
    inline auto Border::CornerRadiusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IBorderStatics const&), Border, IBorderStatics>([](IBorderStatics const& f) { return f.CornerRadiusProperty(); });
    }
    inline auto Border::PaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IBorderStatics const&), Border, IBorderStatics>([](IBorderStatics const& f) { return f.PaddingProperty(); });
    }
    inline auto Border::ChildTransitionsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IBorderStatics const&), Border, IBorderStatics>([](IBorderStatics const& f) { return f.ChildTransitionsProperty(); });
    }
    inline auto Border::BackgroundSizingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IBorderStatics2 const&), Border, IBorderStatics2>([](IBorderStatics2 const& f) { return f.BackgroundSizingProperty(); });
    }
    inline Button::Button()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Button, IButtonFactory>([&](IButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Button::FlyoutProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IButtonStaticsWithFlyout const&), Button, IButtonStaticsWithFlyout>([](IButtonStaticsWithFlyout const& f) { return f.FlyoutProperty(); });
    }
    inline CalendarDatePicker::CalendarDatePicker()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CalendarDatePicker, ICalendarDatePickerFactory>([&](ICalendarDatePickerFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto CalendarDatePicker::DateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.DateProperty(); });
    }
    inline auto CalendarDatePicker::IsCalendarOpenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.IsCalendarOpenProperty(); });
    }
    inline auto CalendarDatePicker::DateFormatProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.DateFormatProperty(); });
    }
    inline auto CalendarDatePicker::PlaceholderTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto CalendarDatePicker::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.HeaderProperty(); });
    }
    inline auto CalendarDatePicker::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto CalendarDatePicker::CalendarViewStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.CalendarViewStyleProperty(); });
    }
    inline auto CalendarDatePicker::MinDateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.MinDateProperty(); });
    }
    inline auto CalendarDatePicker::MaxDateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.MaxDateProperty(); });
    }
    inline auto CalendarDatePicker::IsTodayHighlightedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.IsTodayHighlightedProperty(); });
    }
    inline auto CalendarDatePicker::DisplayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.DisplayModeProperty(); });
    }
    inline auto CalendarDatePicker::FirstDayOfWeekProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.FirstDayOfWeekProperty(); });
    }
    inline auto CalendarDatePicker::DayOfWeekFormatProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.DayOfWeekFormatProperty(); });
    }
    inline auto CalendarDatePicker::CalendarIdentifierProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.CalendarIdentifierProperty(); });
    }
    inline auto CalendarDatePicker::IsOutOfScopeEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.IsOutOfScopeEnabledProperty(); });
    }
    inline auto CalendarDatePicker::IsGroupLabelVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics const&), CalendarDatePicker, ICalendarDatePickerStatics>([](ICalendarDatePickerStatics const& f) { return f.IsGroupLabelVisibleProperty(); });
    }
    inline auto CalendarDatePicker::LightDismissOverlayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics2 const&), CalendarDatePicker, ICalendarDatePickerStatics2>([](ICalendarDatePickerStatics2 const& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline auto CalendarDatePicker::DescriptionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarDatePickerStatics3 const&), CalendarDatePicker, ICalendarDatePickerStatics3>([](ICalendarDatePickerStatics3 const& f) { return f.DescriptionProperty(); });
    }
    inline CalendarView::CalendarView()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CalendarView, ICalendarViewFactory>([&](ICalendarViewFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto CalendarView::CalendarIdentifierProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.CalendarIdentifierProperty(); });
    }
    inline auto CalendarView::DayOfWeekFormatProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.DayOfWeekFormatProperty(); });
    }
    inline auto CalendarView::IsGroupLabelVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.IsGroupLabelVisibleProperty(); });
    }
    inline auto CalendarView::DisplayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.DisplayModeProperty(); });
    }
    inline auto CalendarView::FirstDayOfWeekProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.FirstDayOfWeekProperty(); });
    }
    inline auto CalendarView::IsOutOfScopeEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.IsOutOfScopeEnabledProperty(); });
    }
    inline auto CalendarView::IsTodayHighlightedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.IsTodayHighlightedProperty(); });
    }
    inline auto CalendarView::MaxDateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.MaxDateProperty(); });
    }
    inline auto CalendarView::MinDateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.MinDateProperty(); });
    }
    inline auto CalendarView::NumberOfWeeksInViewProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.NumberOfWeeksInViewProperty(); });
    }
    inline auto CalendarView::SelectedDatesProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.SelectedDatesProperty(); });
    }
    inline auto CalendarView::SelectionModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.SelectionModeProperty(); });
    }
    inline auto CalendarView::TemplateSettingsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.TemplateSettingsProperty(); });
    }
    inline auto CalendarView::FocusBorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.FocusBorderBrushProperty(); });
    }
    inline auto CalendarView::SelectedHoverBorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.SelectedHoverBorderBrushProperty(); });
    }
    inline auto CalendarView::SelectedPressedBorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.SelectedPressedBorderBrushProperty(); });
    }
    inline auto CalendarView::SelectedBorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.SelectedBorderBrushProperty(); });
    }
    inline auto CalendarView::HoverBorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.HoverBorderBrushProperty(); });
    }
    inline auto CalendarView::PressedBorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.PressedBorderBrushProperty(); });
    }
    inline auto CalendarView::CalendarItemBorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.CalendarItemBorderBrushProperty(); });
    }
    inline auto CalendarView::OutOfScopeBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.OutOfScopeBackgroundProperty(); });
    }
    inline auto CalendarView::CalendarItemBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.CalendarItemBackgroundProperty(); });
    }
    inline auto CalendarView::PressedForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.PressedForegroundProperty(); });
    }
    inline auto CalendarView::TodayForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.TodayForegroundProperty(); });
    }
    inline auto CalendarView::BlackoutForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.BlackoutForegroundProperty(); });
    }
    inline auto CalendarView::SelectedForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.SelectedForegroundProperty(); });
    }
    inline auto CalendarView::OutOfScopeForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.OutOfScopeForegroundProperty(); });
    }
    inline auto CalendarView::CalendarItemForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.CalendarItemForegroundProperty(); });
    }
    inline auto CalendarView::DayItemFontFamilyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.DayItemFontFamilyProperty(); });
    }
    inline auto CalendarView::DayItemFontSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.DayItemFontSizeProperty(); });
    }
    inline auto CalendarView::DayItemFontStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.DayItemFontStyleProperty(); });
    }
    inline auto CalendarView::DayItemFontWeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.DayItemFontWeightProperty(); });
    }
    inline auto CalendarView::TodayFontWeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.TodayFontWeightProperty(); });
    }
    inline auto CalendarView::FirstOfMonthLabelFontFamilyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.FirstOfMonthLabelFontFamilyProperty(); });
    }
    inline auto CalendarView::FirstOfMonthLabelFontSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.FirstOfMonthLabelFontSizeProperty(); });
    }
    inline auto CalendarView::FirstOfMonthLabelFontStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.FirstOfMonthLabelFontStyleProperty(); });
    }
    inline auto CalendarView::FirstOfMonthLabelFontWeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.FirstOfMonthLabelFontWeightProperty(); });
    }
    inline auto CalendarView::MonthYearItemFontFamilyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.MonthYearItemFontFamilyProperty(); });
    }
    inline auto CalendarView::MonthYearItemFontSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.MonthYearItemFontSizeProperty(); });
    }
    inline auto CalendarView::MonthYearItemFontStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.MonthYearItemFontStyleProperty(); });
    }
    inline auto CalendarView::MonthYearItemFontWeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.MonthYearItemFontWeightProperty(); });
    }
    inline auto CalendarView::FirstOfYearDecadeLabelFontFamilyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.FirstOfYearDecadeLabelFontFamilyProperty(); });
    }
    inline auto CalendarView::FirstOfYearDecadeLabelFontSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.FirstOfYearDecadeLabelFontSizeProperty(); });
    }
    inline auto CalendarView::FirstOfYearDecadeLabelFontStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.FirstOfYearDecadeLabelFontStyleProperty(); });
    }
    inline auto CalendarView::FirstOfYearDecadeLabelFontWeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.FirstOfYearDecadeLabelFontWeightProperty(); });
    }
    inline auto CalendarView::HorizontalDayItemAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.HorizontalDayItemAlignmentProperty(); });
    }
    inline auto CalendarView::VerticalDayItemAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.VerticalDayItemAlignmentProperty(); });
    }
    inline auto CalendarView::HorizontalFirstOfMonthLabelAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.HorizontalFirstOfMonthLabelAlignmentProperty(); });
    }
    inline auto CalendarView::VerticalFirstOfMonthLabelAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.VerticalFirstOfMonthLabelAlignmentProperty(); });
    }
    inline auto CalendarView::CalendarItemBorderThicknessProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.CalendarItemBorderThicknessProperty(); });
    }
    inline auto CalendarView::CalendarViewDayItemStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics const&), CalendarView, ICalendarViewStatics>([](ICalendarViewStatics const& f) { return f.CalendarViewDayItemStyleProperty(); });
    }
    inline auto CalendarView::SelectedDisabledBorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.SelectedDisabledBorderBrushProperty(); });
    }
    inline auto CalendarView::TodaySelectedInnerBorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.TodaySelectedInnerBorderBrushProperty(); });
    }
    inline auto CalendarView::BlackoutStrikethroughBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.BlackoutStrikethroughBrushProperty(); });
    }
    inline auto CalendarView::BlackoutBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.BlackoutBackgroundProperty(); });
    }
    inline auto CalendarView::CalendarItemHoverBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.CalendarItemHoverBackgroundProperty(); });
    }
    inline auto CalendarView::CalendarItemPressedBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.CalendarItemPressedBackgroundProperty(); });
    }
    inline auto CalendarView::CalendarItemDisabledBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.CalendarItemDisabledBackgroundProperty(); });
    }
    inline auto CalendarView::TodayBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.TodayBackgroundProperty(); });
    }
    inline auto CalendarView::TodayBlackoutBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.TodayBlackoutBackgroundProperty(); });
    }
    inline auto CalendarView::TodayHoverBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.TodayHoverBackgroundProperty(); });
    }
    inline auto CalendarView::TodayPressedBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.TodayPressedBackgroundProperty(); });
    }
    inline auto CalendarView::TodayDisabledBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.TodayDisabledBackgroundProperty(); });
    }
    inline auto CalendarView::TodayBlackoutForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.TodayBlackoutForegroundProperty(); });
    }
    inline auto CalendarView::SelectedHoverForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.SelectedHoverForegroundProperty(); });
    }
    inline auto CalendarView::SelectedPressedForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.SelectedPressedForegroundProperty(); });
    }
    inline auto CalendarView::SelectedDisabledForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.SelectedDisabledForegroundProperty(); });
    }
    inline auto CalendarView::OutOfScopeHoverForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.OutOfScopeHoverForegroundProperty(); });
    }
    inline auto CalendarView::OutOfScopePressedForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.OutOfScopePressedForegroundProperty(); });
    }
    inline auto CalendarView::DisabledForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.DisabledForegroundProperty(); });
    }
    inline auto CalendarView::DayItemMarginProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.DayItemMarginProperty(); });
    }
    inline auto CalendarView::MonthYearItemMarginProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.MonthYearItemMarginProperty(); });
    }
    inline auto CalendarView::FirstOfMonthLabelMarginProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.FirstOfMonthLabelMarginProperty(); });
    }
    inline auto CalendarView::FirstOfYearDecadeLabelMarginProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.FirstOfYearDecadeLabelMarginProperty(); });
    }
    inline auto CalendarView::CalendarItemCornerRadiusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewStatics2 const&), CalendarView, ICalendarViewStatics2>([](ICalendarViewStatics2 const& f) { return f.CalendarItemCornerRadiusProperty(); });
    }
    inline CalendarViewDayItem::CalendarViewDayItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CalendarViewDayItem, ICalendarViewDayItemFactory>([&](ICalendarViewDayItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto CalendarViewDayItem::IsBlackoutProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewDayItemStatics const&), CalendarViewDayItem, ICalendarViewDayItemStatics>([](ICalendarViewDayItemStatics const& f) { return f.IsBlackoutProperty(); });
    }
    inline auto CalendarViewDayItem::DateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICalendarViewDayItemStatics const&), CalendarViewDayItem, ICalendarViewDayItemStatics>([](ICalendarViewDayItemStatics const& f) { return f.DateProperty(); });
    }
    inline Canvas::Canvas()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Canvas, ICanvasFactory>([&](ICanvasFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Canvas::LeftProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICanvasStatics const&), Canvas, ICanvasStatics>([](ICanvasStatics const& f) { return f.LeftProperty(); });
    }
    inline auto Canvas::GetLeft(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<Canvas, ICanvasStatics>([&](ICanvasStatics const& f) { return f.GetLeft(element); });
    }
    inline auto Canvas::SetLeft(winrt::Windows::UI::Xaml::UIElement const& element, double length)
    {
        impl::call_factory<Canvas, ICanvasStatics>([&](ICanvasStatics const& f) { return f.SetLeft(element, length); });
    }
    inline auto Canvas::TopProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICanvasStatics const&), Canvas, ICanvasStatics>([](ICanvasStatics const& f) { return f.TopProperty(); });
    }
    inline auto Canvas::GetTop(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<Canvas, ICanvasStatics>([&](ICanvasStatics const& f) { return f.GetTop(element); });
    }
    inline auto Canvas::SetTop(winrt::Windows::UI::Xaml::UIElement const& element, double length)
    {
        impl::call_factory<Canvas, ICanvasStatics>([&](ICanvasStatics const& f) { return f.SetTop(element, length); });
    }
    inline auto Canvas::ZIndexProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICanvasStatics const&), Canvas, ICanvasStatics>([](ICanvasStatics const& f) { return f.ZIndexProperty(); });
    }
    inline auto Canvas::GetZIndex(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<Canvas, ICanvasStatics>([&](ICanvasStatics const& f) { return f.GetZIndex(element); });
    }
    inline auto Canvas::SetZIndex(winrt::Windows::UI::Xaml::UIElement const& element, int32_t value)
    {
        impl::call_factory<Canvas, ICanvasStatics>([&](ICanvasStatics const& f) { return f.SetZIndex(element, value); });
    }
    inline CaptureElement::CaptureElement() :
        CaptureElement(impl::call_factory_cast<CaptureElement(*)(winrt::Windows::Foundation::IActivationFactory const&), CaptureElement>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<CaptureElement>(); }))
    {
    }
    inline auto CaptureElement::SourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICaptureElementStatics const&), CaptureElement, ICaptureElementStatics>([](ICaptureElementStatics const& f) { return f.SourceProperty(); });
    }
    inline auto CaptureElement::StretchProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICaptureElementStatics const&), CaptureElement, ICaptureElementStatics>([](ICaptureElementStatics const& f) { return f.StretchProperty(); });
    }
    inline CheckBox::CheckBox()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CheckBox, ICheckBoxFactory>([&](ICheckBoxFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline ChoosingGroupHeaderContainerEventArgs::ChoosingGroupHeaderContainerEventArgs() :
        ChoosingGroupHeaderContainerEventArgs(impl::call_factory_cast<ChoosingGroupHeaderContainerEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), ChoosingGroupHeaderContainerEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ChoosingGroupHeaderContainerEventArgs>(); }))
    {
    }
    inline ChoosingItemContainerEventArgs::ChoosingItemContainerEventArgs() :
        ChoosingItemContainerEventArgs(impl::call_factory_cast<ChoosingItemContainerEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), ChoosingItemContainerEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ChoosingItemContainerEventArgs>(); }))
    {
    }
    inline ColorPicker::ColorPicker()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ColorPicker, IColorPickerFactory>([&](IColorPickerFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ColorPicker::ColorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.ColorProperty(); });
    }
    inline auto ColorPicker::PreviousColorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.PreviousColorProperty(); });
    }
    inline auto ColorPicker::IsAlphaEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.IsAlphaEnabledProperty(); });
    }
    inline auto ColorPicker::IsColorSpectrumVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.IsColorSpectrumVisibleProperty(); });
    }
    inline auto ColorPicker::IsColorPreviewVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.IsColorPreviewVisibleProperty(); });
    }
    inline auto ColorPicker::IsColorSliderVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.IsColorSliderVisibleProperty(); });
    }
    inline auto ColorPicker::IsAlphaSliderVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.IsAlphaSliderVisibleProperty(); });
    }
    inline auto ColorPicker::IsMoreButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.IsMoreButtonVisibleProperty(); });
    }
    inline auto ColorPicker::IsColorChannelTextInputVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.IsColorChannelTextInputVisibleProperty(); });
    }
    inline auto ColorPicker::IsAlphaTextInputVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.IsAlphaTextInputVisibleProperty(); });
    }
    inline auto ColorPicker::IsHexInputVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.IsHexInputVisibleProperty(); });
    }
    inline auto ColorPicker::MinHueProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.MinHueProperty(); });
    }
    inline auto ColorPicker::MaxHueProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.MaxHueProperty(); });
    }
    inline auto ColorPicker::MinSaturationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.MinSaturationProperty(); });
    }
    inline auto ColorPicker::MaxSaturationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.MaxSaturationProperty(); });
    }
    inline auto ColorPicker::MinValueProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.MinValueProperty(); });
    }
    inline auto ColorPicker::MaxValueProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.MaxValueProperty(); });
    }
    inline auto ColorPicker::ColorSpectrumShapeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.ColorSpectrumShapeProperty(); });
    }
    inline auto ColorPicker::ColorSpectrumComponentsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColorPickerStatics const&), ColorPicker, IColorPickerStatics>([](IColorPickerStatics const& f) { return f.ColorSpectrumComponentsProperty(); });
    }
    inline ColumnDefinition::ColumnDefinition() :
        ColumnDefinition(impl::call_factory_cast<ColumnDefinition(*)(winrt::Windows::Foundation::IActivationFactory const&), ColumnDefinition>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ColumnDefinition>(); }))
    {
    }
    inline auto ColumnDefinition::WidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColumnDefinitionStatics const&), ColumnDefinition, IColumnDefinitionStatics>([](IColumnDefinitionStatics const& f) { return f.WidthProperty(); });
    }
    inline auto ColumnDefinition::MaxWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColumnDefinitionStatics const&), ColumnDefinition, IColumnDefinitionStatics>([](IColumnDefinitionStatics const& f) { return f.MaxWidthProperty(); });
    }
    inline auto ColumnDefinition::MinWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IColumnDefinitionStatics const&), ColumnDefinition, IColumnDefinitionStatics>([](IColumnDefinitionStatics const& f) { return f.MinWidthProperty(); });
    }
    inline ComboBox::ComboBox()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ComboBox, IComboBoxFactory>([&](IComboBoxFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ComboBox::IsDropDownOpenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics const&), ComboBox, IComboBoxStatics>([](IComboBoxStatics const& f) { return f.IsDropDownOpenProperty(); });
    }
    inline auto ComboBox::MaxDropDownHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics const&), ComboBox, IComboBoxStatics>([](IComboBoxStatics const& f) { return f.MaxDropDownHeightProperty(); });
    }
    inline auto ComboBox::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics2 const&), ComboBox, IComboBoxStatics2>([](IComboBoxStatics2 const& f) { return f.HeaderProperty(); });
    }
    inline auto ComboBox::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics2 const&), ComboBox, IComboBoxStatics2>([](IComboBoxStatics2 const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto ComboBox::PlaceholderTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics2 const&), ComboBox, IComboBoxStatics2>([](IComboBoxStatics2 const& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto ComboBox::LightDismissOverlayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics3 const&), ComboBox, IComboBoxStatics3>([](IComboBoxStatics3 const& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline auto ComboBox::IsTextSearchEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics3 const&), ComboBox, IComboBoxStatics3>([](IComboBoxStatics3 const& f) { return f.IsTextSearchEnabledProperty(); });
    }
    inline auto ComboBox::SelectionChangedTriggerProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics4 const&), ComboBox, IComboBoxStatics4>([](IComboBoxStatics4 const& f) { return f.SelectionChangedTriggerProperty(); });
    }
    inline auto ComboBox::PlaceholderForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics5 const&), ComboBox, IComboBoxStatics5>([](IComboBoxStatics5 const& f) { return f.PlaceholderForegroundProperty(); });
    }
    inline auto ComboBox::IsEditableProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics6 const&), ComboBox, IComboBoxStatics6>([](IComboBoxStatics6 const& f) { return f.IsEditableProperty(); });
    }
    inline auto ComboBox::TextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics6 const&), ComboBox, IComboBoxStatics6>([](IComboBoxStatics6 const& f) { return f.TextProperty(); });
    }
    inline auto ComboBox::TextBoxStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics6 const&), ComboBox, IComboBoxStatics6>([](IComboBoxStatics6 const& f) { return f.TextBoxStyleProperty(); });
    }
    inline auto ComboBox::DescriptionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IComboBoxStatics6 const&), ComboBox, IComboBoxStatics6>([](IComboBoxStatics6 const& f) { return f.DescriptionProperty(); });
    }
    inline ComboBoxItem::ComboBoxItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ComboBoxItem, IComboBoxItemFactory>([&](IComboBoxItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline CommandBar::CommandBar()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CommandBar, ICommandBarFactory>([&](ICommandBarFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto CommandBar::PrimaryCommandsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICommandBarStatics const&), CommandBar, ICommandBarStatics>([](ICommandBarStatics const& f) { return f.PrimaryCommandsProperty(); });
    }
    inline auto CommandBar::SecondaryCommandsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICommandBarStatics const&), CommandBar, ICommandBarStatics>([](ICommandBarStatics const& f) { return f.SecondaryCommandsProperty(); });
    }
    inline auto CommandBar::CommandBarOverflowPresenterStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICommandBarStatics2 const&), CommandBar, ICommandBarStatics2>([](ICommandBarStatics2 const& f) { return f.CommandBarOverflowPresenterStyleProperty(); });
    }
    inline auto CommandBar::DefaultLabelPositionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICommandBarStatics3 const&), CommandBar, ICommandBarStatics3>([](ICommandBarStatics3 const& f) { return f.DefaultLabelPositionProperty(); });
    }
    inline auto CommandBar::OverflowButtonVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICommandBarStatics3 const&), CommandBar, ICommandBarStatics3>([](ICommandBarStatics3 const& f) { return f.OverflowButtonVisibilityProperty(); });
    }
    inline auto CommandBar::IsDynamicOverflowEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ICommandBarStatics3 const&), CommandBar, ICommandBarStatics3>([](ICommandBarStatics3 const& f) { return f.IsDynamicOverflowEnabledProperty(); });
    }
    inline CommandBarFlyout::CommandBarFlyout()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CommandBarFlyout, ICommandBarFlyoutFactory>([&](ICommandBarFlyoutFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline CommandBarOverflowPresenter::CommandBarOverflowPresenter()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<CommandBarOverflowPresenter, ICommandBarOverflowPresenterFactory>([&](ICommandBarOverflowPresenterFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline ContainerContentChangingEventArgs::ContainerContentChangingEventArgs() :
        ContainerContentChangingEventArgs(impl::call_factory_cast<ContainerContentChangingEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), ContainerContentChangingEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ContainerContentChangingEventArgs>(); }))
    {
    }
    inline ContentControl::ContentControl()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ContentControl, IContentControlFactory>([&](IContentControlFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ContentControl::ContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentControlStatics const&), ContentControl, IContentControlStatics>([](IContentControlStatics const& f) { return f.ContentProperty(); });
    }
    inline auto ContentControl::ContentTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentControlStatics const&), ContentControl, IContentControlStatics>([](IContentControlStatics const& f) { return f.ContentTemplateProperty(); });
    }
    inline auto ContentControl::ContentTemplateSelectorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentControlStatics const&), ContentControl, IContentControlStatics>([](IContentControlStatics const& f) { return f.ContentTemplateSelectorProperty(); });
    }
    inline auto ContentControl::ContentTransitionsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentControlStatics const&), ContentControl, IContentControlStatics>([](IContentControlStatics const& f) { return f.ContentTransitionsProperty(); });
    }
    inline ContentDialog::ContentDialog()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ContentDialog, IContentDialogFactory>([&](IContentDialogFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ContentDialog::TitleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics const&), ContentDialog, IContentDialogStatics>([](IContentDialogStatics const& f) { return f.TitleProperty(); });
    }
    inline auto ContentDialog::TitleTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics const&), ContentDialog, IContentDialogStatics>([](IContentDialogStatics const& f) { return f.TitleTemplateProperty(); });
    }
    inline auto ContentDialog::FullSizeDesiredProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics const&), ContentDialog, IContentDialogStatics>([](IContentDialogStatics const& f) { return f.FullSizeDesiredProperty(); });
    }
    inline auto ContentDialog::PrimaryButtonTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics const&), ContentDialog, IContentDialogStatics>([](IContentDialogStatics const& f) { return f.PrimaryButtonTextProperty(); });
    }
    inline auto ContentDialog::SecondaryButtonTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics const&), ContentDialog, IContentDialogStatics>([](IContentDialogStatics const& f) { return f.SecondaryButtonTextProperty(); });
    }
    inline auto ContentDialog::PrimaryButtonCommandProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics const&), ContentDialog, IContentDialogStatics>([](IContentDialogStatics const& f) { return f.PrimaryButtonCommandProperty(); });
    }
    inline auto ContentDialog::SecondaryButtonCommandProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics const&), ContentDialog, IContentDialogStatics>([](IContentDialogStatics const& f) { return f.SecondaryButtonCommandProperty(); });
    }
    inline auto ContentDialog::PrimaryButtonCommandParameterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics const&), ContentDialog, IContentDialogStatics>([](IContentDialogStatics const& f) { return f.PrimaryButtonCommandParameterProperty(); });
    }
    inline auto ContentDialog::SecondaryButtonCommandParameterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics const&), ContentDialog, IContentDialogStatics>([](IContentDialogStatics const& f) { return f.SecondaryButtonCommandParameterProperty(); });
    }
    inline auto ContentDialog::IsPrimaryButtonEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics const&), ContentDialog, IContentDialogStatics>([](IContentDialogStatics const& f) { return f.IsPrimaryButtonEnabledProperty(); });
    }
    inline auto ContentDialog::IsSecondaryButtonEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics const&), ContentDialog, IContentDialogStatics>([](IContentDialogStatics const& f) { return f.IsSecondaryButtonEnabledProperty(); });
    }
    inline auto ContentDialog::CloseButtonTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics2 const&), ContentDialog, IContentDialogStatics2>([](IContentDialogStatics2 const& f) { return f.CloseButtonTextProperty(); });
    }
    inline auto ContentDialog::CloseButtonCommandProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics2 const&), ContentDialog, IContentDialogStatics2>([](IContentDialogStatics2 const& f) { return f.CloseButtonCommandProperty(); });
    }
    inline auto ContentDialog::CloseButtonCommandParameterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics2 const&), ContentDialog, IContentDialogStatics2>([](IContentDialogStatics2 const& f) { return f.CloseButtonCommandParameterProperty(); });
    }
    inline auto ContentDialog::PrimaryButtonStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics2 const&), ContentDialog, IContentDialogStatics2>([](IContentDialogStatics2 const& f) { return f.PrimaryButtonStyleProperty(); });
    }
    inline auto ContentDialog::SecondaryButtonStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics2 const&), ContentDialog, IContentDialogStatics2>([](IContentDialogStatics2 const& f) { return f.SecondaryButtonStyleProperty(); });
    }
    inline auto ContentDialog::CloseButtonStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics2 const&), ContentDialog, IContentDialogStatics2>([](IContentDialogStatics2 const& f) { return f.CloseButtonStyleProperty(); });
    }
    inline auto ContentDialog::DefaultButtonProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentDialogStatics2 const&), ContentDialog, IContentDialogStatics2>([](IContentDialogStatics2 const& f) { return f.DefaultButtonProperty(); });
    }
    inline ContentPresenter::ContentPresenter()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ContentPresenter, IContentPresenterFactory>([&](IContentPresenterFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ContentPresenter::ContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics const&), ContentPresenter, IContentPresenterStatics>([](IContentPresenterStatics const& f) { return f.ContentProperty(); });
    }
    inline auto ContentPresenter::ContentTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics const&), ContentPresenter, IContentPresenterStatics>([](IContentPresenterStatics const& f) { return f.ContentTemplateProperty(); });
    }
    inline auto ContentPresenter::ContentTemplateSelectorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics const&), ContentPresenter, IContentPresenterStatics>([](IContentPresenterStatics const& f) { return f.ContentTemplateSelectorProperty(); });
    }
    inline auto ContentPresenter::ContentTransitionsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics const&), ContentPresenter, IContentPresenterStatics>([](IContentPresenterStatics const& f) { return f.ContentTransitionsProperty(); });
    }
    inline auto ContentPresenter::FontSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics const&), ContentPresenter, IContentPresenterStatics>([](IContentPresenterStatics const& f) { return f.FontSizeProperty(); });
    }
    inline auto ContentPresenter::FontFamilyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics const&), ContentPresenter, IContentPresenterStatics>([](IContentPresenterStatics const& f) { return f.FontFamilyProperty(); });
    }
    inline auto ContentPresenter::FontWeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics const&), ContentPresenter, IContentPresenterStatics>([](IContentPresenterStatics const& f) { return f.FontWeightProperty(); });
    }
    inline auto ContentPresenter::FontStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics const&), ContentPresenter, IContentPresenterStatics>([](IContentPresenterStatics const& f) { return f.FontStyleProperty(); });
    }
    inline auto ContentPresenter::FontStretchProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics const&), ContentPresenter, IContentPresenterStatics>([](IContentPresenterStatics const& f) { return f.FontStretchProperty(); });
    }
    inline auto ContentPresenter::CharacterSpacingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics const&), ContentPresenter, IContentPresenterStatics>([](IContentPresenterStatics const& f) { return f.CharacterSpacingProperty(); });
    }
    inline auto ContentPresenter::ForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics const&), ContentPresenter, IContentPresenterStatics>([](IContentPresenterStatics const& f) { return f.ForegroundProperty(); });
    }
    inline auto ContentPresenter::OpticalMarginAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics2 const&), ContentPresenter, IContentPresenterStatics2>([](IContentPresenterStatics2 const& f) { return f.OpticalMarginAlignmentProperty(); });
    }
    inline auto ContentPresenter::TextLineBoundsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics2 const&), ContentPresenter, IContentPresenterStatics2>([](IContentPresenterStatics2 const& f) { return f.TextLineBoundsProperty(); });
    }
    inline auto ContentPresenter::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics3 const&), ContentPresenter, IContentPresenterStatics3>([](IContentPresenterStatics3 const& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto ContentPresenter::TextWrappingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics4 const&), ContentPresenter, IContentPresenterStatics4>([](IContentPresenterStatics4 const& f) { return f.TextWrappingProperty(); });
    }
    inline auto ContentPresenter::MaxLinesProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics4 const&), ContentPresenter, IContentPresenterStatics4>([](IContentPresenterStatics4 const& f) { return f.MaxLinesProperty(); });
    }
    inline auto ContentPresenter::LineStackingStrategyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics4 const&), ContentPresenter, IContentPresenterStatics4>([](IContentPresenterStatics4 const& f) { return f.LineStackingStrategyProperty(); });
    }
    inline auto ContentPresenter::LineHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics4 const&), ContentPresenter, IContentPresenterStatics4>([](IContentPresenterStatics4 const& f) { return f.LineHeightProperty(); });
    }
    inline auto ContentPresenter::BorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics4 const&), ContentPresenter, IContentPresenterStatics4>([](IContentPresenterStatics4 const& f) { return f.BorderBrushProperty(); });
    }
    inline auto ContentPresenter::BorderThicknessProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics4 const&), ContentPresenter, IContentPresenterStatics4>([](IContentPresenterStatics4 const& f) { return f.BorderThicknessProperty(); });
    }
    inline auto ContentPresenter::CornerRadiusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics4 const&), ContentPresenter, IContentPresenterStatics4>([](IContentPresenterStatics4 const& f) { return f.CornerRadiusProperty(); });
    }
    inline auto ContentPresenter::PaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics4 const&), ContentPresenter, IContentPresenterStatics4>([](IContentPresenterStatics4 const& f) { return f.PaddingProperty(); });
    }
    inline auto ContentPresenter::BackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics4 const&), ContentPresenter, IContentPresenterStatics4>([](IContentPresenterStatics4 const& f) { return f.BackgroundProperty(); });
    }
    inline auto ContentPresenter::HorizontalContentAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics4 const&), ContentPresenter, IContentPresenterStatics4>([](IContentPresenterStatics4 const& f) { return f.HorizontalContentAlignmentProperty(); });
    }
    inline auto ContentPresenter::VerticalContentAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics4 const&), ContentPresenter, IContentPresenterStatics4>([](IContentPresenterStatics4 const& f) { return f.VerticalContentAlignmentProperty(); });
    }
    inline auto ContentPresenter::BackgroundSizingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IContentPresenterStatics5 const&), ContentPresenter, IContentPresenterStatics5>([](IContentPresenterStatics5 const& f) { return f.BackgroundSizingProperty(); });
    }
    inline auto Control::FontSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.FontSizeProperty(); });
    }
    inline auto Control::FontFamilyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.FontFamilyProperty(); });
    }
    inline auto Control::FontWeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.FontWeightProperty(); });
    }
    inline auto Control::FontStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.FontStyleProperty(); });
    }
    inline auto Control::FontStretchProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.FontStretchProperty(); });
    }
    inline auto Control::CharacterSpacingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.CharacterSpacingProperty(); });
    }
    inline auto Control::ForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.ForegroundProperty(); });
    }
    inline auto Control::IsTabStopProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.IsTabStopProperty(); });
    }
    inline auto Control::IsEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.IsEnabledProperty(); });
    }
    inline auto Control::TabIndexProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.TabIndexProperty(); });
    }
    inline auto Control::TabNavigationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.TabNavigationProperty(); });
    }
    inline auto Control::TemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.TemplateProperty(); });
    }
    inline auto Control::PaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.PaddingProperty(); });
    }
    inline auto Control::HorizontalContentAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.HorizontalContentAlignmentProperty(); });
    }
    inline auto Control::VerticalContentAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.VerticalContentAlignmentProperty(); });
    }
    inline auto Control::BackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.BackgroundProperty(); });
    }
    inline auto Control::BorderThicknessProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.BorderThicknessProperty(); });
    }
    inline auto Control::BorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.BorderBrushProperty(); });
    }
    inline auto Control::DefaultStyleKeyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.DefaultStyleKeyProperty(); });
    }
    inline auto Control::FocusStateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics const&), Control, IControlStatics>([](IControlStatics const& f) { return f.FocusStateProperty(); });
    }
    inline auto Control::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics2 const&), Control, IControlStatics2>([](IControlStatics2 const& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto Control::UseSystemFocusVisualsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics3 const&), Control, IControlStatics3>([](IControlStatics3 const& f) { return f.UseSystemFocusVisualsProperty(); });
    }
    inline auto Control::IsTemplateFocusTargetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics3 const&), Control, IControlStatics3>([](IControlStatics3 const& f) { return f.IsTemplateFocusTargetProperty(); });
    }
    inline auto Control::GetIsTemplateFocusTarget(winrt::Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Control, IControlStatics3>([&](IControlStatics3 const& f) { return f.GetIsTemplateFocusTarget(element); });
    }
    inline auto Control::SetIsTemplateFocusTarget(winrt::Windows::UI::Xaml::FrameworkElement const& element, bool value)
    {
        impl::call_factory<Control, IControlStatics3>([&](IControlStatics3 const& f) { return f.SetIsTemplateFocusTarget(element, value); });
    }
    inline auto Control::IsFocusEngagementEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics4 const&), Control, IControlStatics4>([](IControlStatics4 const& f) { return f.IsFocusEngagementEnabledProperty(); });
    }
    inline auto Control::IsFocusEngagedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics4 const&), Control, IControlStatics4>([](IControlStatics4 const& f) { return f.IsFocusEngagedProperty(); });
    }
    inline auto Control::RequiresPointerProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics4 const&), Control, IControlStatics4>([](IControlStatics4 const& f) { return f.RequiresPointerProperty(); });
    }
    inline auto Control::XYFocusLeftProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics4 const&), Control, IControlStatics4>([](IControlStatics4 const& f) { return f.XYFocusLeftProperty(); });
    }
    inline auto Control::XYFocusRightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics4 const&), Control, IControlStatics4>([](IControlStatics4 const& f) { return f.XYFocusRightProperty(); });
    }
    inline auto Control::XYFocusUpProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics4 const&), Control, IControlStatics4>([](IControlStatics4 const& f) { return f.XYFocusUpProperty(); });
    }
    inline auto Control::XYFocusDownProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics4 const&), Control, IControlStatics4>([](IControlStatics4 const& f) { return f.XYFocusDownProperty(); });
    }
    inline auto Control::ElementSoundModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics4 const&), Control, IControlStatics4>([](IControlStatics4 const& f) { return f.ElementSoundModeProperty(); });
    }
    inline auto Control::DefaultStyleResourceUriProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics5 const&), Control, IControlStatics5>([](IControlStatics5 const& f) { return f.DefaultStyleResourceUriProperty(); });
    }
    inline auto Control::IsTemplateKeyTipTargetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics5 const&), Control, IControlStatics5>([](IControlStatics5 const& f) { return f.IsTemplateKeyTipTargetProperty(); });
    }
    inline auto Control::GetIsTemplateKeyTipTarget(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<Control, IControlStatics5>([&](IControlStatics5 const& f) { return f.GetIsTemplateKeyTipTarget(element); });
    }
    inline auto Control::SetIsTemplateKeyTipTarget(winrt::Windows::UI::Xaml::DependencyObject const& element, bool value)
    {
        impl::call_factory<Control, IControlStatics5>([&](IControlStatics5 const& f) { return f.SetIsTemplateKeyTipTarget(element, value); });
    }
    inline auto Control::BackgroundSizingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics7 const&), Control, IControlStatics7>([](IControlStatics7 const& f) { return f.BackgroundSizingProperty(); });
    }
    inline auto Control::CornerRadiusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IControlStatics7 const&), Control, IControlStatics7>([](IControlStatics7 const& f) { return f.CornerRadiusProperty(); });
    }
    inline ControlTemplate::ControlTemplate() :
        ControlTemplate(impl::call_factory_cast<ControlTemplate(*)(winrt::Windows::Foundation::IActivationFactory const&), ControlTemplate>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ControlTemplate>(); }))
    {
    }
    inline DataTemplateSelector::DataTemplateSelector()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<DataTemplateSelector, IDataTemplateSelectorFactory>([&](IDataTemplateSelectorFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline DatePickedEventArgs::DatePickedEventArgs() :
        DatePickedEventArgs(impl::call_factory_cast<DatePickedEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), DatePickedEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<DatePickedEventArgs>(); }))
    {
    }
    inline DatePicker::DatePicker()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<DatePicker, IDatePickerFactory>([&](IDatePickerFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto DatePicker::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.HeaderProperty(); });
    }
    inline auto DatePicker::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto DatePicker::CalendarIdentifierProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.CalendarIdentifierProperty(); });
    }
    inline auto DatePicker::DateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.DateProperty(); });
    }
    inline auto DatePicker::DayVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.DayVisibleProperty(); });
    }
    inline auto DatePicker::MonthVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.MonthVisibleProperty(); });
    }
    inline auto DatePicker::YearVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.YearVisibleProperty(); });
    }
    inline auto DatePicker::DayFormatProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.DayFormatProperty(); });
    }
    inline auto DatePicker::MonthFormatProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.MonthFormatProperty(); });
    }
    inline auto DatePicker::YearFormatProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.YearFormatProperty(); });
    }
    inline auto DatePicker::MinYearProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.MinYearProperty(); });
    }
    inline auto DatePicker::MaxYearProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.MaxYearProperty(); });
    }
    inline auto DatePicker::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics const&), DatePicker, IDatePickerStatics>([](IDatePickerStatics const& f) { return f.OrientationProperty(); });
    }
    inline auto DatePicker::LightDismissOverlayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics2 const&), DatePicker, IDatePickerStatics2>([](IDatePickerStatics2 const& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline auto DatePicker::SelectedDateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerStatics3 const&), DatePicker, IDatePickerStatics3>([](IDatePickerStatics3 const& f) { return f.SelectedDateProperty(); });
    }
    inline DatePickerFlyout::DatePickerFlyout() :
        DatePickerFlyout(impl::call_factory_cast<DatePickerFlyout(*)(winrt::Windows::Foundation::IActivationFactory const&), DatePickerFlyout>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<DatePickerFlyout>(); }))
    {
    }
    inline auto DatePickerFlyout::CalendarIdentifierProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutStatics const&), DatePickerFlyout, IDatePickerFlyoutStatics>([](IDatePickerFlyoutStatics const& f) { return f.CalendarIdentifierProperty(); });
    }
    inline auto DatePickerFlyout::DateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutStatics const&), DatePickerFlyout, IDatePickerFlyoutStatics>([](IDatePickerFlyoutStatics const& f) { return f.DateProperty(); });
    }
    inline auto DatePickerFlyout::DayVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutStatics const&), DatePickerFlyout, IDatePickerFlyoutStatics>([](IDatePickerFlyoutStatics const& f) { return f.DayVisibleProperty(); });
    }
    inline auto DatePickerFlyout::MonthVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutStatics const&), DatePickerFlyout, IDatePickerFlyoutStatics>([](IDatePickerFlyoutStatics const& f) { return f.MonthVisibleProperty(); });
    }
    inline auto DatePickerFlyout::YearVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutStatics const&), DatePickerFlyout, IDatePickerFlyoutStatics>([](IDatePickerFlyoutStatics const& f) { return f.YearVisibleProperty(); });
    }
    inline auto DatePickerFlyout::MinYearProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutStatics const&), DatePickerFlyout, IDatePickerFlyoutStatics>([](IDatePickerFlyoutStatics const& f) { return f.MinYearProperty(); });
    }
    inline auto DatePickerFlyout::MaxYearProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutStatics const&), DatePickerFlyout, IDatePickerFlyoutStatics>([](IDatePickerFlyoutStatics const& f) { return f.MaxYearProperty(); });
    }
    inline auto DatePickerFlyout::DayFormatProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutStatics2 const&), DatePickerFlyout, IDatePickerFlyoutStatics2>([](IDatePickerFlyoutStatics2 const& f) { return f.DayFormatProperty(); });
    }
    inline auto DatePickerFlyout::MonthFormatProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutStatics2 const&), DatePickerFlyout, IDatePickerFlyoutStatics2>([](IDatePickerFlyoutStatics2 const& f) { return f.MonthFormatProperty(); });
    }
    inline auto DatePickerFlyout::YearFormatProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutStatics2 const&), DatePickerFlyout, IDatePickerFlyoutStatics2>([](IDatePickerFlyoutStatics2 const& f) { return f.YearFormatProperty(); });
    }
    inline auto DatePickerFlyoutItem::PrimaryTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutItemStatics const&), DatePickerFlyoutItem, IDatePickerFlyoutItemStatics>([](IDatePickerFlyoutItemStatics const& f) { return f.PrimaryTextProperty(); });
    }
    inline auto DatePickerFlyoutItem::SecondaryTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutItemStatics const&), DatePickerFlyoutItem, IDatePickerFlyoutItemStatics>([](IDatePickerFlyoutItemStatics const& f) { return f.SecondaryTextProperty(); });
    }
    inline auto DatePickerFlyoutPresenter::IsDefaultShadowEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IDatePickerFlyoutPresenterStatics2 const&), DatePickerFlyoutPresenter, IDatePickerFlyoutPresenterStatics2>([](IDatePickerFlyoutPresenterStatics2 const& f) { return f.IsDefaultShadowEnabledProperty(); });
    }
    inline DragItemsStartingEventArgs::DragItemsStartingEventArgs() :
        DragItemsStartingEventArgs(impl::call_factory_cast<DragItemsStartingEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), DragItemsStartingEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<DragItemsStartingEventArgs>(); }))
    {
    }
    inline DropDownButton::DropDownButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<DropDownButton, IDropDownButtonFactory>([&](IDropDownButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline DropDownButtonAutomationPeer::DropDownButtonAutomationPeer(winrt::Windows::UI::Xaml::Controls::DropDownButton const& owner)
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<DropDownButtonAutomationPeer, IDropDownButtonAutomationPeerFactory>([&](IDropDownButtonAutomationPeerFactory const& f) { return f.CreateInstance(owner, baseInterface, innerInterface); });
    }
    inline DynamicOverflowItemsChangingEventArgs::DynamicOverflowItemsChangingEventArgs() :
        DynamicOverflowItemsChangingEventArgs(impl::call_factory_cast<DynamicOverflowItemsChangingEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), DynamicOverflowItemsChangingEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<DynamicOverflowItemsChangingEventArgs>(); }))
    {
    }
    inline FlipView::FlipView()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<FlipView, IFlipViewFactory>([&](IFlipViewFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto FlipView::UseTouchAnimationsForAllNavigationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFlipViewStatics2 const&), FlipView, IFlipViewStatics2>([](IFlipViewStatics2 const& f) { return f.UseTouchAnimationsForAllNavigationProperty(); });
    }
    inline FlipViewItem::FlipViewItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<FlipViewItem, IFlipViewItemFactory>([&](IFlipViewItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline Flyout::Flyout()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Flyout, IFlyoutFactory>([&](IFlyoutFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Flyout::ContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFlyoutStatics const&), Flyout, IFlyoutStatics>([](IFlyoutStatics const& f) { return f.ContentProperty(); });
    }
    inline auto Flyout::FlyoutPresenterStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFlyoutStatics const&), Flyout, IFlyoutStatics>([](IFlyoutStatics const& f) { return f.FlyoutPresenterStyleProperty(); });
    }
    inline FlyoutPresenter::FlyoutPresenter()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<FlyoutPresenter, IFlyoutPresenterFactory>([&](IFlyoutPresenterFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto FlyoutPresenter::IsDefaultShadowEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFlyoutPresenterStatics2 const&), FlyoutPresenter, IFlyoutPresenterStatics2>([](IFlyoutPresenterStatics2 const& f) { return f.IsDefaultShadowEnabledProperty(); });
    }
    inline FontIcon::FontIcon()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<FontIcon, IFontIconFactory>([&](IFontIconFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto FontIcon::GlyphProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconStatics const&), FontIcon, IFontIconStatics>([](IFontIconStatics const& f) { return f.GlyphProperty(); });
    }
    inline auto FontIcon::FontSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconStatics const&), FontIcon, IFontIconStatics>([](IFontIconStatics const& f) { return f.FontSizeProperty(); });
    }
    inline auto FontIcon::FontFamilyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconStatics const&), FontIcon, IFontIconStatics>([](IFontIconStatics const& f) { return f.FontFamilyProperty(); });
    }
    inline auto FontIcon::FontWeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconStatics const&), FontIcon, IFontIconStatics>([](IFontIconStatics const& f) { return f.FontWeightProperty(); });
    }
    inline auto FontIcon::FontStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconStatics const&), FontIcon, IFontIconStatics>([](IFontIconStatics const& f) { return f.FontStyleProperty(); });
    }
    inline auto FontIcon::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconStatics2 const&), FontIcon, IFontIconStatics2>([](IFontIconStatics2 const& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto FontIcon::MirroredWhenRightToLeftProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconStatics3 const&), FontIcon, IFontIconStatics3>([](IFontIconStatics3 const& f) { return f.MirroredWhenRightToLeftProperty(); });
    }
    inline FontIconSource::FontIconSource()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<FontIconSource, IFontIconSourceFactory>([&](IFontIconSourceFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto FontIconSource::GlyphProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconSourceStatics const&), FontIconSource, IFontIconSourceStatics>([](IFontIconSourceStatics const& f) { return f.GlyphProperty(); });
    }
    inline auto FontIconSource::FontSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconSourceStatics const&), FontIconSource, IFontIconSourceStatics>([](IFontIconSourceStatics const& f) { return f.FontSizeProperty(); });
    }
    inline auto FontIconSource::FontFamilyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconSourceStatics const&), FontIconSource, IFontIconSourceStatics>([](IFontIconSourceStatics const& f) { return f.FontFamilyProperty(); });
    }
    inline auto FontIconSource::FontWeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconSourceStatics const&), FontIconSource, IFontIconSourceStatics>([](IFontIconSourceStatics const& f) { return f.FontWeightProperty(); });
    }
    inline auto FontIconSource::FontStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconSourceStatics const&), FontIconSource, IFontIconSourceStatics>([](IFontIconSourceStatics const& f) { return f.FontStyleProperty(); });
    }
    inline auto FontIconSource::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconSourceStatics const&), FontIconSource, IFontIconSourceStatics>([](IFontIconSourceStatics const& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto FontIconSource::MirroredWhenRightToLeftProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFontIconSourceStatics const&), FontIconSource, IFontIconSourceStatics>([](IFontIconSourceStatics const& f) { return f.MirroredWhenRightToLeftProperty(); });
    }
    inline Frame::Frame()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Frame, IFrameFactory>([&](IFrameFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Frame::CacheSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFrameStatics const&), Frame, IFrameStatics>([](IFrameStatics const& f) { return f.CacheSizeProperty(); });
    }
    inline auto Frame::CanGoBackProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFrameStatics const&), Frame, IFrameStatics>([](IFrameStatics const& f) { return f.CanGoBackProperty(); });
    }
    inline auto Frame::CanGoForwardProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFrameStatics const&), Frame, IFrameStatics>([](IFrameStatics const& f) { return f.CanGoForwardProperty(); });
    }
    inline auto Frame::CurrentSourcePageTypeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFrameStatics const&), Frame, IFrameStatics>([](IFrameStatics const& f) { return f.CurrentSourcePageTypeProperty(); });
    }
    inline auto Frame::SourcePageTypeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFrameStatics const&), Frame, IFrameStatics>([](IFrameStatics const& f) { return f.SourcePageTypeProperty(); });
    }
    inline auto Frame::BackStackDepthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFrameStatics const&), Frame, IFrameStatics>([](IFrameStatics const& f) { return f.BackStackDepthProperty(); });
    }
    inline auto Frame::BackStackProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFrameStatics2 const&), Frame, IFrameStatics2>([](IFrameStatics2 const& f) { return f.BackStackProperty(); });
    }
    inline auto Frame::ForwardStackProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFrameStatics2 const&), Frame, IFrameStatics2>([](IFrameStatics2 const& f) { return f.ForwardStackProperty(); });
    }
    inline auto Frame::IsNavigationStackEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IFrameStatics5 const&), Frame, IFrameStatics5>([](IFrameStatics5 const& f) { return f.IsNavigationStackEnabledProperty(); });
    }
    inline Grid::Grid()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Grid, IGridFactory>([&](IGridFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Grid::RowProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IGridStatics const&), Grid, IGridStatics>([](IGridStatics const& f) { return f.RowProperty(); });
    }
    inline auto Grid::GetRow(winrt::Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Grid, IGridStatics>([&](IGridStatics const& f) { return f.GetRow(element); });
    }
    inline auto Grid::SetRow(winrt::Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
    {
        impl::call_factory<Grid, IGridStatics>([&](IGridStatics const& f) { return f.SetRow(element, value); });
    }
    inline auto Grid::ColumnProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IGridStatics const&), Grid, IGridStatics>([](IGridStatics const& f) { return f.ColumnProperty(); });
    }
    inline auto Grid::GetColumn(winrt::Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Grid, IGridStatics>([&](IGridStatics const& f) { return f.GetColumn(element); });
    }
    inline auto Grid::SetColumn(winrt::Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
    {
        impl::call_factory<Grid, IGridStatics>([&](IGridStatics const& f) { return f.SetColumn(element, value); });
    }
    inline auto Grid::RowSpanProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IGridStatics const&), Grid, IGridStatics>([](IGridStatics const& f) { return f.RowSpanProperty(); });
    }
    inline auto Grid::GetRowSpan(winrt::Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Grid, IGridStatics>([&](IGridStatics const& f) { return f.GetRowSpan(element); });
    }
    inline auto Grid::SetRowSpan(winrt::Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
    {
        impl::call_factory<Grid, IGridStatics>([&](IGridStatics const& f) { return f.SetRowSpan(element, value); });
    }
    inline auto Grid::ColumnSpanProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IGridStatics const&), Grid, IGridStatics>([](IGridStatics const& f) { return f.ColumnSpanProperty(); });
    }
    inline auto Grid::GetColumnSpan(winrt::Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Grid, IGridStatics>([&](IGridStatics const& f) { return f.GetColumnSpan(element); });
    }
    inline auto Grid::SetColumnSpan(winrt::Windows::UI::Xaml::FrameworkElement const& element, int32_t value)
    {
        impl::call_factory<Grid, IGridStatics>([&](IGridStatics const& f) { return f.SetColumnSpan(element, value); });
    }
    inline auto Grid::BorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IGridStatics2 const&), Grid, IGridStatics2>([](IGridStatics2 const& f) { return f.BorderBrushProperty(); });
    }
    inline auto Grid::BorderThicknessProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IGridStatics2 const&), Grid, IGridStatics2>([](IGridStatics2 const& f) { return f.BorderThicknessProperty(); });
    }
    inline auto Grid::CornerRadiusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IGridStatics2 const&), Grid, IGridStatics2>([](IGridStatics2 const& f) { return f.CornerRadiusProperty(); });
    }
    inline auto Grid::PaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IGridStatics2 const&), Grid, IGridStatics2>([](IGridStatics2 const& f) { return f.PaddingProperty(); });
    }
    inline auto Grid::RowSpacingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IGridStatics3 const&), Grid, IGridStatics3>([](IGridStatics3 const& f) { return f.RowSpacingProperty(); });
    }
    inline auto Grid::ColumnSpacingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IGridStatics3 const&), Grid, IGridStatics3>([](IGridStatics3 const& f) { return f.ColumnSpacingProperty(); });
    }
    inline auto Grid::BackgroundSizingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IGridStatics4 const&), Grid, IGridStatics4>([](IGridStatics4 const& f) { return f.BackgroundSizingProperty(); });
    }
    inline GridView::GridView()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GridView, IGridViewFactory>([&](IGridViewFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline GridViewHeaderItem::GridViewHeaderItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GridViewHeaderItem, IGridViewHeaderItemFactory>([&](IGridViewHeaderItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline GridViewItem::GridViewItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GridViewItem, IGridViewItemFactory>([&](IGridViewItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline GroupItem::GroupItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GroupItem, IGroupItemFactory>([&](IGroupItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline GroupStyle::GroupStyle()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GroupStyle, IGroupStyleFactory>([&](IGroupStyleFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline GroupStyleSelector::GroupStyleSelector()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<GroupStyleSelector, IGroupStyleSelectorFactory>([&](IGroupStyleSelectorFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline HandwritingView::HandwritingView()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<HandwritingView, IHandwritingViewFactory>([&](IHandwritingViewFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto HandwritingView::PlacementTargetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHandwritingViewStatics const&), HandwritingView, IHandwritingViewStatics>([](IHandwritingViewStatics const& f) { return f.PlacementTargetProperty(); });
    }
    inline auto HandwritingView::PlacementAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHandwritingViewStatics const&), HandwritingView, IHandwritingViewStatics>([](IHandwritingViewStatics const& f) { return f.PlacementAlignmentProperty(); });
    }
    inline auto HandwritingView::IsOpenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHandwritingViewStatics const&), HandwritingView, IHandwritingViewStatics>([](IHandwritingViewStatics const& f) { return f.IsOpenProperty(); });
    }
    inline auto HandwritingView::AreCandidatesEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHandwritingViewStatics const&), HandwritingView, IHandwritingViewStatics>([](IHandwritingViewStatics const& f) { return f.AreCandidatesEnabledProperty(); });
    }
    inline auto HandwritingView::IsSwitchToKeyboardEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHandwritingViewStatics2 const&), HandwritingView, IHandwritingViewStatics2>([](IHandwritingViewStatics2 const& f) { return f.IsSwitchToKeyboardEnabledProperty(); });
    }
    inline auto HandwritingView::IsCommandBarOpenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHandwritingViewStatics2 const&), HandwritingView, IHandwritingViewStatics2>([](IHandwritingViewStatics2 const& f) { return f.IsCommandBarOpenProperty(); });
    }
    inline Hub::Hub()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Hub, IHubFactory>([&](IHubFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Hub::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHubStatics const&), Hub, IHubStatics>([](IHubStatics const& f) { return f.HeaderProperty(); });
    }
    inline auto Hub::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHubStatics const&), Hub, IHubStatics>([](IHubStatics const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto Hub::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHubStatics const&), Hub, IHubStatics>([](IHubStatics const& f) { return f.OrientationProperty(); });
    }
    inline auto Hub::DefaultSectionIndexProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHubStatics const&), Hub, IHubStatics>([](IHubStatics const& f) { return f.DefaultSectionIndexProperty(); });
    }
    inline auto Hub::SemanticZoomOwnerProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHubStatics const&), Hub, IHubStatics>([](IHubStatics const& f) { return f.SemanticZoomOwnerProperty(); });
    }
    inline auto Hub::IsActiveViewProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHubStatics const&), Hub, IHubStatics>([](IHubStatics const& f) { return f.IsActiveViewProperty(); });
    }
    inline auto Hub::IsZoomedInViewProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHubStatics const&), Hub, IHubStatics>([](IHubStatics const& f) { return f.IsZoomedInViewProperty(); });
    }
    inline HubSection::HubSection()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<HubSection, IHubSectionFactory>([&](IHubSectionFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto HubSection::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHubSectionStatics const&), HubSection, IHubSectionStatics>([](IHubSectionStatics const& f) { return f.HeaderProperty(); });
    }
    inline auto HubSection::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHubSectionStatics const&), HubSection, IHubSectionStatics>([](IHubSectionStatics const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto HubSection::ContentTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHubSectionStatics const&), HubSection, IHubSectionStatics>([](IHubSectionStatics const& f) { return f.ContentTemplateProperty(); });
    }
    inline auto HubSection::IsHeaderInteractiveProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHubSectionStatics const&), HubSection, IHubSectionStatics>([](IHubSectionStatics const& f) { return f.IsHeaderInteractiveProperty(); });
    }
    inline HubSectionHeaderClickEventArgs::HubSectionHeaderClickEventArgs() :
        HubSectionHeaderClickEventArgs(impl::call_factory_cast<HubSectionHeaderClickEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), HubSectionHeaderClickEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<HubSectionHeaderClickEventArgs>(); }))
    {
    }
    inline HyperlinkButton::HyperlinkButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<HyperlinkButton, IHyperlinkButtonFactory>([&](IHyperlinkButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto HyperlinkButton::NavigateUriProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IHyperlinkButtonStatics const&), HyperlinkButton, IHyperlinkButtonStatics>([](IHyperlinkButtonStatics const& f) { return f.NavigateUriProperty(); });
    }
    inline auto IconElement::ForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IIconElementStatics const&), IconElement, IIconElementStatics>([](IIconElementStatics const& f) { return f.ForegroundProperty(); });
    }
    inline auto IconSource::ForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IIconSourceStatics const&), IconSource, IIconSourceStatics>([](IIconSourceStatics const& f) { return f.ForegroundProperty(); });
    }
    inline IconSourceElement::IconSourceElement()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<IconSourceElement, IIconSourceElementFactory>([&](IIconSourceElementFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto IconSourceElement::IconSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IIconSourceElementStatics const&), IconSourceElement, IIconSourceElementStatics>([](IIconSourceElementStatics const& f) { return f.IconSourceProperty(); });
    }
    inline Image::Image() :
        Image(impl::call_factory_cast<Image(*)(winrt::Windows::Foundation::IActivationFactory const&), Image>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<Image>(); }))
    {
    }
    inline auto Image::SourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IImageStatics const&), Image, IImageStatics>([](IImageStatics const& f) { return f.SourceProperty(); });
    }
    inline auto Image::StretchProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IImageStatics const&), Image, IImageStatics>([](IImageStatics const& f) { return f.StretchProperty(); });
    }
    inline auto Image::NineGridProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IImageStatics const&), Image, IImageStatics>([](IImageStatics const& f) { return f.NineGridProperty(); });
    }
    inline auto Image::PlayToSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IImageStatics const&), Image, IImageStatics>([](IImageStatics const& f) { return f.PlayToSourceProperty(); });
    }
    inline InkCanvas::InkCanvas()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkCanvas, IInkCanvasFactory>([&](IInkCanvasFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline InkToolbar::InkToolbar()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbar, IInkToolbarFactory>([&](IInkToolbarFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbar::InitialControlsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStatics const&), InkToolbar, IInkToolbarStatics>([](IInkToolbarStatics const& f) { return f.InitialControlsProperty(); });
    }
    inline auto InkToolbar::ChildrenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStatics const&), InkToolbar, IInkToolbarStatics>([](IInkToolbarStatics const& f) { return f.ChildrenProperty(); });
    }
    inline auto InkToolbar::ActiveToolProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStatics const&), InkToolbar, IInkToolbarStatics>([](IInkToolbarStatics const& f) { return f.ActiveToolProperty(); });
    }
    inline auto InkToolbar::InkDrawingAttributesProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStatics const&), InkToolbar, IInkToolbarStatics>([](IInkToolbarStatics const& f) { return f.InkDrawingAttributesProperty(); });
    }
    inline auto InkToolbar::IsRulerButtonCheckedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStatics const&), InkToolbar, IInkToolbarStatics>([](IInkToolbarStatics const& f) { return f.IsRulerButtonCheckedProperty(); });
    }
    inline auto InkToolbar::TargetInkCanvasProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStatics const&), InkToolbar, IInkToolbarStatics>([](IInkToolbarStatics const& f) { return f.TargetInkCanvasProperty(); });
    }
    inline auto InkToolbar::IsStencilButtonCheckedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStatics2 const&), InkToolbar, IInkToolbarStatics2>([](IInkToolbarStatics2 const& f) { return f.IsStencilButtonCheckedProperty(); });
    }
    inline auto InkToolbar::ButtonFlyoutPlacementProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStatics2 const&), InkToolbar, IInkToolbarStatics2>([](IInkToolbarStatics2 const& f) { return f.ButtonFlyoutPlacementProperty(); });
    }
    inline auto InkToolbar::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStatics2 const&), InkToolbar, IInkToolbarStatics2>([](IInkToolbarStatics2 const& f) { return f.OrientationProperty(); });
    }
    inline auto InkToolbar::TargetInkPresenterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStatics3 const&), InkToolbar, IInkToolbarStatics3>([](IInkToolbarStatics3 const& f) { return f.TargetInkPresenterProperty(); });
    }
    inline InkToolbarBallpointPenButton::InkToolbarBallpointPenButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarBallpointPenButton, IInkToolbarBallpointPenButtonFactory>([&](IInkToolbarBallpointPenButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline InkToolbarCustomPenButton::InkToolbarCustomPenButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarCustomPenButton, IInkToolbarCustomPenButtonFactory>([&](IInkToolbarCustomPenButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarCustomPenButton::CustomPenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarCustomPenButtonStatics const&), InkToolbarCustomPenButton, IInkToolbarCustomPenButtonStatics>([](IInkToolbarCustomPenButtonStatics const& f) { return f.CustomPenProperty(); });
    }
    inline auto InkToolbarCustomPenButton::ConfigurationContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarCustomPenButtonStatics const&), InkToolbarCustomPenButton, IInkToolbarCustomPenButtonStatics>([](IInkToolbarCustomPenButtonStatics const& f) { return f.ConfigurationContentProperty(); });
    }
    inline InkToolbarCustomToggleButton::InkToolbarCustomToggleButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarCustomToggleButton, IInkToolbarCustomToggleButtonFactory>([&](IInkToolbarCustomToggleButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline InkToolbarCustomToolButton::InkToolbarCustomToolButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarCustomToolButton, IInkToolbarCustomToolButtonFactory>([&](IInkToolbarCustomToolButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarCustomToolButton::ConfigurationContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarCustomToolButtonStatics const&), InkToolbarCustomToolButton, IInkToolbarCustomToolButtonStatics>([](IInkToolbarCustomToolButtonStatics const& f) { return f.ConfigurationContentProperty(); });
    }
    inline InkToolbarEraserButton::InkToolbarEraserButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarEraserButton, IInkToolbarEraserButtonFactory>([&](IInkToolbarEraserButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarEraserButton::IsClearAllVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarEraserButtonStatics2 const&), InkToolbarEraserButton, IInkToolbarEraserButtonStatics2>([](IInkToolbarEraserButtonStatics2 const& f) { return f.IsClearAllVisibleProperty(); });
    }
    inline InkToolbarFlyoutItem::InkToolbarFlyoutItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarFlyoutItem, IInkToolbarFlyoutItemFactory>([&](IInkToolbarFlyoutItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarFlyoutItem::KindProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarFlyoutItemStatics const&), InkToolbarFlyoutItem, IInkToolbarFlyoutItemStatics>([](IInkToolbarFlyoutItemStatics const& f) { return f.KindProperty(); });
    }
    inline auto InkToolbarFlyoutItem::IsCheckedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarFlyoutItemStatics const&), InkToolbarFlyoutItem, IInkToolbarFlyoutItemStatics>([](IInkToolbarFlyoutItemStatics const& f) { return f.IsCheckedProperty(); });
    }
    inline InkToolbarHighlighterButton::InkToolbarHighlighterButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarHighlighterButton, IInkToolbarHighlighterButtonFactory>([&](IInkToolbarHighlighterButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline InkToolbarIsStencilButtonCheckedChangedEventArgs::InkToolbarIsStencilButtonCheckedChangedEventArgs() :
        InkToolbarIsStencilButtonCheckedChangedEventArgs(impl::call_factory_cast<InkToolbarIsStencilButtonCheckedChangedEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), InkToolbarIsStencilButtonCheckedChangedEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<InkToolbarIsStencilButtonCheckedChangedEventArgs>(); }))
    {
    }
    inline auto InkToolbarMenuButton::IsExtensionGlyphShownProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarMenuButtonStatics const&), InkToolbarMenuButton, IInkToolbarMenuButtonStatics>([](IInkToolbarMenuButtonStatics const& f) { return f.IsExtensionGlyphShownProperty(); });
    }
    inline auto InkToolbarPenButton::PaletteProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarPenButtonStatics const&), InkToolbarPenButton, IInkToolbarPenButtonStatics>([](IInkToolbarPenButtonStatics const& f) { return f.PaletteProperty(); });
    }
    inline auto InkToolbarPenButton::MinStrokeWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarPenButtonStatics const&), InkToolbarPenButton, IInkToolbarPenButtonStatics>([](IInkToolbarPenButtonStatics const& f) { return f.MinStrokeWidthProperty(); });
    }
    inline auto InkToolbarPenButton::MaxStrokeWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarPenButtonStatics const&), InkToolbarPenButton, IInkToolbarPenButtonStatics>([](IInkToolbarPenButtonStatics const& f) { return f.MaxStrokeWidthProperty(); });
    }
    inline auto InkToolbarPenButton::SelectedBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarPenButtonStatics const&), InkToolbarPenButton, IInkToolbarPenButtonStatics>([](IInkToolbarPenButtonStatics const& f) { return f.SelectedBrushProperty(); });
    }
    inline auto InkToolbarPenButton::SelectedBrushIndexProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarPenButtonStatics const&), InkToolbarPenButton, IInkToolbarPenButtonStatics>([](IInkToolbarPenButtonStatics const& f) { return f.SelectedBrushIndexProperty(); });
    }
    inline auto InkToolbarPenButton::SelectedStrokeWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarPenButtonStatics const&), InkToolbarPenButton, IInkToolbarPenButtonStatics>([](IInkToolbarPenButtonStatics const& f) { return f.SelectedStrokeWidthProperty(); });
    }
    inline InkToolbarPenConfigurationControl::InkToolbarPenConfigurationControl()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarPenConfigurationControl, IInkToolbarPenConfigurationControlFactory>([&](IInkToolbarPenConfigurationControlFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarPenConfigurationControl::PenButtonProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarPenConfigurationControlStatics const&), InkToolbarPenConfigurationControl, IInkToolbarPenConfigurationControlStatics>([](IInkToolbarPenConfigurationControlStatics const& f) { return f.PenButtonProperty(); });
    }
    inline InkToolbarPencilButton::InkToolbarPencilButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarPencilButton, IInkToolbarPencilButtonFactory>([&](IInkToolbarPencilButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline InkToolbarRulerButton::InkToolbarRulerButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarRulerButton, IInkToolbarRulerButtonFactory>([&](IInkToolbarRulerButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarRulerButton::RulerProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarRulerButtonStatics const&), InkToolbarRulerButton, IInkToolbarRulerButtonStatics>([](IInkToolbarRulerButtonStatics const& f) { return f.RulerProperty(); });
    }
    inline InkToolbarStencilButton::InkToolbarStencilButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<InkToolbarStencilButton, IInkToolbarStencilButtonFactory>([&](IInkToolbarStencilButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto InkToolbarStencilButton::RulerProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStencilButtonStatics const&), InkToolbarStencilButton, IInkToolbarStencilButtonStatics>([](IInkToolbarStencilButtonStatics const& f) { return f.RulerProperty(); });
    }
    inline auto InkToolbarStencilButton::ProtractorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStencilButtonStatics const&), InkToolbarStencilButton, IInkToolbarStencilButtonStatics>([](IInkToolbarStencilButtonStatics const& f) { return f.ProtractorProperty(); });
    }
    inline auto InkToolbarStencilButton::SelectedStencilProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStencilButtonStatics const&), InkToolbarStencilButton, IInkToolbarStencilButtonStatics>([](IInkToolbarStencilButtonStatics const& f) { return f.SelectedStencilProperty(); });
    }
    inline auto InkToolbarStencilButton::IsRulerItemVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStencilButtonStatics const&), InkToolbarStencilButton, IInkToolbarStencilButtonStatics>([](IInkToolbarStencilButtonStatics const& f) { return f.IsRulerItemVisibleProperty(); });
    }
    inline auto InkToolbarStencilButton::IsProtractorItemVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarStencilButtonStatics const&), InkToolbarStencilButton, IInkToolbarStencilButtonStatics>([](IInkToolbarStencilButtonStatics const& f) { return f.IsProtractorItemVisibleProperty(); });
    }
    inline auto InkToolbarToolButton::IsExtensionGlyphShownProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IInkToolbarToolButtonStatics const&), InkToolbarToolButton, IInkToolbarToolButtonStatics>([](IInkToolbarToolButtonStatics const& f) { return f.IsExtensionGlyphShownProperty(); });
    }
    inline ItemClickEventArgs::ItemClickEventArgs() :
        ItemClickEventArgs(impl::call_factory_cast<ItemClickEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), ItemClickEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ItemClickEventArgs>(); }))
    {
    }
    inline ItemsControl::ItemsControl()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ItemsControl, IItemsControlFactory>([&](IItemsControlFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ItemsControl::ItemsSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsControlStatics const&), ItemsControl, IItemsControlStatics>([](IItemsControlStatics const& f) { return f.ItemsSourceProperty(); });
    }
    inline auto ItemsControl::ItemTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsControlStatics const&), ItemsControl, IItemsControlStatics>([](IItemsControlStatics const& f) { return f.ItemTemplateProperty(); });
    }
    inline auto ItemsControl::ItemTemplateSelectorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsControlStatics const&), ItemsControl, IItemsControlStatics>([](IItemsControlStatics const& f) { return f.ItemTemplateSelectorProperty(); });
    }
    inline auto ItemsControl::ItemsPanelProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsControlStatics const&), ItemsControl, IItemsControlStatics>([](IItemsControlStatics const& f) { return f.ItemsPanelProperty(); });
    }
    inline auto ItemsControl::DisplayMemberPathProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsControlStatics const&), ItemsControl, IItemsControlStatics>([](IItemsControlStatics const& f) { return f.DisplayMemberPathProperty(); });
    }
    inline auto ItemsControl::ItemContainerStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsControlStatics const&), ItemsControl, IItemsControlStatics>([](IItemsControlStatics const& f) { return f.ItemContainerStyleProperty(); });
    }
    inline auto ItemsControl::ItemContainerStyleSelectorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsControlStatics const&), ItemsControl, IItemsControlStatics>([](IItemsControlStatics const& f) { return f.ItemContainerStyleSelectorProperty(); });
    }
    inline auto ItemsControl::ItemContainerTransitionsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsControlStatics const&), ItemsControl, IItemsControlStatics>([](IItemsControlStatics const& f) { return f.ItemContainerTransitionsProperty(); });
    }
    inline auto ItemsControl::GroupStyleSelectorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsControlStatics const&), ItemsControl, IItemsControlStatics>([](IItemsControlStatics const& f) { return f.GroupStyleSelectorProperty(); });
    }
    inline auto ItemsControl::IsGroupingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsControlStatics const&), ItemsControl, IItemsControlStatics>([](IItemsControlStatics const& f) { return f.IsGroupingProperty(); });
    }
    inline auto ItemsControl::GetItemsOwner(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ItemsControl, IItemsControlStatics>([&](IItemsControlStatics const& f) { return f.GetItemsOwner(element); });
    }
    inline auto ItemsControl::ItemsControlFromItemContainer(winrt::Windows::UI::Xaml::DependencyObject const& container)
    {
        return impl::call_factory<ItemsControl, IItemsControlStatics>([&](IItemsControlStatics const& f) { return f.ItemsControlFromItemContainer(container); });
    }
    inline ItemsPanelTemplate::ItemsPanelTemplate() :
        ItemsPanelTemplate(impl::call_factory_cast<ItemsPanelTemplate(*)(winrt::Windows::Foundation::IActivationFactory const&), ItemsPanelTemplate>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ItemsPanelTemplate>(); }))
    {
    }
    inline ItemsPickedEventArgs::ItemsPickedEventArgs() :
        ItemsPickedEventArgs(impl::call_factory_cast<ItemsPickedEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), ItemsPickedEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ItemsPickedEventArgs>(); }))
    {
    }
    inline ItemsPresenter::ItemsPresenter() :
        ItemsPresenter(impl::call_factory_cast<ItemsPresenter(*)(winrt::Windows::Foundation::IActivationFactory const&), ItemsPresenter>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ItemsPresenter>(); }))
    {
    }
    inline auto ItemsPresenter::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsPresenterStatics const&), ItemsPresenter, IItemsPresenterStatics>([](IItemsPresenterStatics const& f) { return f.HeaderProperty(); });
    }
    inline auto ItemsPresenter::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsPresenterStatics const&), ItemsPresenter, IItemsPresenterStatics>([](IItemsPresenterStatics const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto ItemsPresenter::HeaderTransitionsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsPresenterStatics const&), ItemsPresenter, IItemsPresenterStatics>([](IItemsPresenterStatics const& f) { return f.HeaderTransitionsProperty(); });
    }
    inline auto ItemsPresenter::PaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsPresenterStatics const&), ItemsPresenter, IItemsPresenterStatics>([](IItemsPresenterStatics const& f) { return f.PaddingProperty(); });
    }
    inline auto ItemsPresenter::FooterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsPresenterStatics2 const&), ItemsPresenter, IItemsPresenterStatics2>([](IItemsPresenterStatics2 const& f) { return f.FooterProperty(); });
    }
    inline auto ItemsPresenter::FooterTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsPresenterStatics2 const&), ItemsPresenter, IItemsPresenterStatics2>([](IItemsPresenterStatics2 const& f) { return f.FooterTemplateProperty(); });
    }
    inline auto ItemsPresenter::FooterTransitionsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsPresenterStatics2 const&), ItemsPresenter, IItemsPresenterStatics2>([](IItemsPresenterStatics2 const& f) { return f.FooterTransitionsProperty(); });
    }
    inline ItemsStackPanel::ItemsStackPanel() :
        ItemsStackPanel(impl::call_factory_cast<ItemsStackPanel(*)(winrt::Windows::Foundation::IActivationFactory const&), ItemsStackPanel>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ItemsStackPanel>(); }))
    {
    }
    inline auto ItemsStackPanel::GroupPaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsStackPanelStatics const&), ItemsStackPanel, IItemsStackPanelStatics>([](IItemsStackPanelStatics const& f) { return f.GroupPaddingProperty(); });
    }
    inline auto ItemsStackPanel::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsStackPanelStatics const&), ItemsStackPanel, IItemsStackPanelStatics>([](IItemsStackPanelStatics const& f) { return f.OrientationProperty(); });
    }
    inline auto ItemsStackPanel::GroupHeaderPlacementProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsStackPanelStatics const&), ItemsStackPanel, IItemsStackPanelStatics>([](IItemsStackPanelStatics const& f) { return f.GroupHeaderPlacementProperty(); });
    }
    inline auto ItemsStackPanel::CacheLengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsStackPanelStatics const&), ItemsStackPanel, IItemsStackPanelStatics>([](IItemsStackPanelStatics const& f) { return f.CacheLengthProperty(); });
    }
    inline auto ItemsStackPanel::AreStickyGroupHeadersEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsStackPanelStatics2 const&), ItemsStackPanel, IItemsStackPanelStatics2>([](IItemsStackPanelStatics2 const& f) { return f.AreStickyGroupHeadersEnabledProperty(); });
    }
    inline ItemsWrapGrid::ItemsWrapGrid() :
        ItemsWrapGrid(impl::call_factory_cast<ItemsWrapGrid(*)(winrt::Windows::Foundation::IActivationFactory const&), ItemsWrapGrid>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ItemsWrapGrid>(); }))
    {
    }
    inline auto ItemsWrapGrid::GroupPaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsWrapGridStatics const&), ItemsWrapGrid, IItemsWrapGridStatics>([](IItemsWrapGridStatics const& f) { return f.GroupPaddingProperty(); });
    }
    inline auto ItemsWrapGrid::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsWrapGridStatics const&), ItemsWrapGrid, IItemsWrapGridStatics>([](IItemsWrapGridStatics const& f) { return f.OrientationProperty(); });
    }
    inline auto ItemsWrapGrid::MaximumRowsOrColumnsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsWrapGridStatics const&), ItemsWrapGrid, IItemsWrapGridStatics>([](IItemsWrapGridStatics const& f) { return f.MaximumRowsOrColumnsProperty(); });
    }
    inline auto ItemsWrapGrid::ItemWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsWrapGridStatics const&), ItemsWrapGrid, IItemsWrapGridStatics>([](IItemsWrapGridStatics const& f) { return f.ItemWidthProperty(); });
    }
    inline auto ItemsWrapGrid::ItemHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsWrapGridStatics const&), ItemsWrapGrid, IItemsWrapGridStatics>([](IItemsWrapGridStatics const& f) { return f.ItemHeightProperty(); });
    }
    inline auto ItemsWrapGrid::GroupHeaderPlacementProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsWrapGridStatics const&), ItemsWrapGrid, IItemsWrapGridStatics>([](IItemsWrapGridStatics const& f) { return f.GroupHeaderPlacementProperty(); });
    }
    inline auto ItemsWrapGrid::CacheLengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsWrapGridStatics const&), ItemsWrapGrid, IItemsWrapGridStatics>([](IItemsWrapGridStatics const& f) { return f.CacheLengthProperty(); });
    }
    inline auto ItemsWrapGrid::AreStickyGroupHeadersEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IItemsWrapGridStatics2 const&), ItemsWrapGrid, IItemsWrapGridStatics2>([](IItemsWrapGridStatics2 const& f) { return f.AreStickyGroupHeadersEnabledProperty(); });
    }
    inline ListBox::ListBox()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ListBox, IListBoxFactory>([&](IListBoxFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ListBox::SelectionModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListBoxStatics const&), ListBox, IListBoxStatics>([](IListBoxStatics const& f) { return f.SelectionModeProperty(); });
    }
    inline auto ListBox::SingleSelectionFollowsFocusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListBoxStatics2 const&), ListBox, IListBoxStatics2>([](IListBoxStatics2 const& f) { return f.SingleSelectionFollowsFocusProperty(); });
    }
    inline ListBoxItem::ListBoxItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ListBoxItem, IListBoxItemFactory>([&](IListBoxItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline ListPickerFlyout::ListPickerFlyout() :
        ListPickerFlyout(impl::call_factory_cast<ListPickerFlyout(*)(winrt::Windows::Foundation::IActivationFactory const&), ListPickerFlyout>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ListPickerFlyout>(); }))
    {
    }
    inline auto ListPickerFlyout::ItemsSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListPickerFlyoutStatics const&), ListPickerFlyout, IListPickerFlyoutStatics>([](IListPickerFlyoutStatics const& f) { return f.ItemsSourceProperty(); });
    }
    inline auto ListPickerFlyout::ItemTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListPickerFlyoutStatics const&), ListPickerFlyout, IListPickerFlyoutStatics>([](IListPickerFlyoutStatics const& f) { return f.ItemTemplateProperty(); });
    }
    inline auto ListPickerFlyout::DisplayMemberPathProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListPickerFlyoutStatics const&), ListPickerFlyout, IListPickerFlyoutStatics>([](IListPickerFlyoutStatics const& f) { return f.DisplayMemberPathProperty(); });
    }
    inline auto ListPickerFlyout::SelectionModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListPickerFlyoutStatics const&), ListPickerFlyout, IListPickerFlyoutStatics>([](IListPickerFlyoutStatics const& f) { return f.SelectionModeProperty(); });
    }
    inline auto ListPickerFlyout::SelectedIndexProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListPickerFlyoutStatics const&), ListPickerFlyout, IListPickerFlyoutStatics>([](IListPickerFlyoutStatics const& f) { return f.SelectedIndexProperty(); });
    }
    inline auto ListPickerFlyout::SelectedItemProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListPickerFlyoutStatics const&), ListPickerFlyout, IListPickerFlyoutStatics>([](IListPickerFlyoutStatics const& f) { return f.SelectedItemProperty(); });
    }
    inline auto ListPickerFlyout::SelectedValueProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListPickerFlyoutStatics const&), ListPickerFlyout, IListPickerFlyoutStatics>([](IListPickerFlyoutStatics const& f) { return f.SelectedValueProperty(); });
    }
    inline auto ListPickerFlyout::SelectedValuePathProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListPickerFlyoutStatics const&), ListPickerFlyout, IListPickerFlyoutStatics>([](IListPickerFlyoutStatics const& f) { return f.SelectedValuePathProperty(); });
    }
    inline ListView::ListView()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ListView, IListViewFactory>([&](IListViewFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ListViewBase::SelectionModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.SelectionModeProperty(); });
    }
    inline auto ListViewBase::IsSwipeEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.IsSwipeEnabledProperty(); });
    }
    inline auto ListViewBase::CanDragItemsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.CanDragItemsProperty(); });
    }
    inline auto ListViewBase::CanReorderItemsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.CanReorderItemsProperty(); });
    }
    inline auto ListViewBase::IsItemClickEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.IsItemClickEnabledProperty(); });
    }
    inline auto ListViewBase::DataFetchSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.DataFetchSizeProperty(); });
    }
    inline auto ListViewBase::IncrementalLoadingThresholdProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.IncrementalLoadingThresholdProperty(); });
    }
    inline auto ListViewBase::IncrementalLoadingTriggerProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.IncrementalLoadingTriggerProperty(); });
    }
    inline auto ListViewBase::SemanticZoomOwnerProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.SemanticZoomOwnerProperty(); });
    }
    inline auto ListViewBase::IsActiveViewProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.IsActiveViewProperty(); });
    }
    inline auto ListViewBase::IsZoomedInViewProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.IsZoomedInViewProperty(); });
    }
    inline auto ListViewBase::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.HeaderProperty(); });
    }
    inline auto ListViewBase::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto ListViewBase::HeaderTransitionsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics const&), ListViewBase, IListViewBaseStatics>([](IListViewBaseStatics const& f) { return f.HeaderTransitionsProperty(); });
    }
    inline auto ListViewBase::ShowsScrollingPlaceholdersProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics2 const&), ListViewBase, IListViewBaseStatics2>([](IListViewBaseStatics2 const& f) { return f.ShowsScrollingPlaceholdersProperty(); });
    }
    inline auto ListViewBase::FooterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics2 const&), ListViewBase, IListViewBaseStatics2>([](IListViewBaseStatics2 const& f) { return f.FooterProperty(); });
    }
    inline auto ListViewBase::FooterTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics2 const&), ListViewBase, IListViewBaseStatics2>([](IListViewBaseStatics2 const& f) { return f.FooterTemplateProperty(); });
    }
    inline auto ListViewBase::FooterTransitionsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics2 const&), ListViewBase, IListViewBaseStatics2>([](IListViewBaseStatics2 const& f) { return f.FooterTransitionsProperty(); });
    }
    inline auto ListViewBase::ReorderModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics3 const&), ListViewBase, IListViewBaseStatics3>([](IListViewBaseStatics3 const& f) { return f.ReorderModeProperty(); });
    }
    inline auto ListViewBase::IsMultiSelectCheckBoxEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics4 const&), ListViewBase, IListViewBaseStatics4>([](IListViewBaseStatics4 const& f) { return f.IsMultiSelectCheckBoxEnabledProperty(); });
    }
    inline auto ListViewBase::SingleSelectionFollowsFocusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IListViewBaseStatics5 const&), ListViewBase, IListViewBaseStatics5>([](IListViewBaseStatics5 const& f) { return f.SingleSelectionFollowsFocusProperty(); });
    }
    inline ListViewHeaderItem::ListViewHeaderItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ListViewHeaderItem, IListViewHeaderItemFactory>([&](IListViewHeaderItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline ListViewItem::ListViewItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ListViewItem, IListViewItemFactory>([&](IListViewItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ListViewPersistenceHelper::GetRelativeScrollPosition(winrt::Windows::UI::Xaml::Controls::ListViewBase const& listViewBase, winrt::Windows::UI::Xaml::Controls::ListViewItemToKeyHandler const& itemToKeyHandler)
    {
        return impl::call_factory<ListViewPersistenceHelper, IListViewPersistenceHelperStatics>([&](IListViewPersistenceHelperStatics const& f) { return f.GetRelativeScrollPosition(listViewBase, itemToKeyHandler); });
    }
    inline auto ListViewPersistenceHelper::SetRelativeScrollPositionAsync(winrt::Windows::UI::Xaml::Controls::ListViewBase const& listViewBase, param::hstring const& relativeScrollPosition, winrt::Windows::UI::Xaml::Controls::ListViewKeyToItemHandler const& keyToItemHandler)
    {
        return impl::call_factory<ListViewPersistenceHelper, IListViewPersistenceHelperStatics>([&](IListViewPersistenceHelperStatics const& f) { return f.SetRelativeScrollPositionAsync(listViewBase, relativeScrollPosition, keyToItemHandler); });
    }
    inline MediaElement::MediaElement() :
        MediaElement(impl::call_factory_cast<MediaElement(*)(winrt::Windows::Foundation::IActivationFactory const&), MediaElement>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<MediaElement>(); }))
    {
    }
    inline auto MediaElement::PosterSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.PosterSourceProperty(); });
    }
    inline auto MediaElement::SourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.SourceProperty(); });
    }
    inline auto MediaElement::IsMutedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.IsMutedProperty(); });
    }
    inline auto MediaElement::IsAudioOnlyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.IsAudioOnlyProperty(); });
    }
    inline auto MediaElement::AutoPlayProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.AutoPlayProperty(); });
    }
    inline auto MediaElement::VolumeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.VolumeProperty(); });
    }
    inline auto MediaElement::BalanceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.BalanceProperty(); });
    }
    inline auto MediaElement::NaturalVideoHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.NaturalVideoHeightProperty(); });
    }
    inline auto MediaElement::NaturalVideoWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.NaturalVideoWidthProperty(); });
    }
    inline auto MediaElement::NaturalDurationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.NaturalDurationProperty(); });
    }
    inline auto MediaElement::PositionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.PositionProperty(); });
    }
    inline auto MediaElement::DownloadProgressProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.DownloadProgressProperty(); });
    }
    inline auto MediaElement::BufferingProgressProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.BufferingProgressProperty(); });
    }
    inline auto MediaElement::DownloadProgressOffsetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.DownloadProgressOffsetProperty(); });
    }
    inline auto MediaElement::CurrentStateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.CurrentStateProperty(); });
    }
    inline auto MediaElement::CanSeekProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.CanSeekProperty(); });
    }
    inline auto MediaElement::CanPauseProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.CanPauseProperty(); });
    }
    inline auto MediaElement::AudioStreamCountProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.AudioStreamCountProperty(); });
    }
    inline auto MediaElement::AudioStreamIndexProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.AudioStreamIndexProperty(); });
    }
    inline auto MediaElement::PlaybackRateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.PlaybackRateProperty(); });
    }
    inline auto MediaElement::IsLoopingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.IsLoopingProperty(); });
    }
    inline auto MediaElement::PlayToSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.PlayToSourceProperty(); });
    }
    inline auto MediaElement::DefaultPlaybackRateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.DefaultPlaybackRateProperty(); });
    }
    inline auto MediaElement::AspectRatioWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.AspectRatioWidthProperty(); });
    }
    inline auto MediaElement::AspectRatioHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.AspectRatioHeightProperty(); });
    }
    inline auto MediaElement::RealTimePlaybackProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.RealTimePlaybackProperty(); });
    }
    inline auto MediaElement::AudioCategoryProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.AudioCategoryProperty(); });
    }
    inline auto MediaElement::AudioDeviceTypeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.AudioDeviceTypeProperty(); });
    }
    inline auto MediaElement::ProtectionManagerProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.ProtectionManagerProperty(); });
    }
    inline auto MediaElement::Stereo3DVideoPackingModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.Stereo3DVideoPackingModeProperty(); });
    }
    inline auto MediaElement::Stereo3DVideoRenderModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.Stereo3DVideoRenderModeProperty(); });
    }
    inline auto MediaElement::IsStereo3DVideoProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.IsStereo3DVideoProperty(); });
    }
    inline auto MediaElement::ActualStereo3DVideoPackingModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics const&), MediaElement, IMediaElementStatics>([](IMediaElementStatics const& f) { return f.ActualStereo3DVideoPackingModeProperty(); });
    }
    inline auto MediaElement::AreTransportControlsEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics2 const&), MediaElement, IMediaElementStatics2>([](IMediaElementStatics2 const& f) { return f.AreTransportControlsEnabledProperty(); });
    }
    inline auto MediaElement::StretchProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics2 const&), MediaElement, IMediaElementStatics2>([](IMediaElementStatics2 const& f) { return f.StretchProperty(); });
    }
    inline auto MediaElement::IsFullWindowProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics2 const&), MediaElement, IMediaElementStatics2>([](IMediaElementStatics2 const& f) { return f.IsFullWindowProperty(); });
    }
    inline auto MediaElement::PlayToPreferredSourceUriProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaElementStatics2 const&), MediaElement, IMediaElementStatics2>([](IMediaElementStatics2 const& f) { return f.PlayToPreferredSourceUriProperty(); });
    }
    inline MediaPlayerElement::MediaPlayerElement()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MediaPlayerElement, IMediaPlayerElementFactory>([&](IMediaPlayerElementFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MediaPlayerElement::SourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaPlayerElementStatics const&), MediaPlayerElement, IMediaPlayerElementStatics>([](IMediaPlayerElementStatics const& f) { return f.SourceProperty(); });
    }
    inline auto MediaPlayerElement::AreTransportControlsEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaPlayerElementStatics const&), MediaPlayerElement, IMediaPlayerElementStatics>([](IMediaPlayerElementStatics const& f) { return f.AreTransportControlsEnabledProperty(); });
    }
    inline auto MediaPlayerElement::PosterSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaPlayerElementStatics const&), MediaPlayerElement, IMediaPlayerElementStatics>([](IMediaPlayerElementStatics const& f) { return f.PosterSourceProperty(); });
    }
    inline auto MediaPlayerElement::StretchProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaPlayerElementStatics const&), MediaPlayerElement, IMediaPlayerElementStatics>([](IMediaPlayerElementStatics const& f) { return f.StretchProperty(); });
    }
    inline auto MediaPlayerElement::AutoPlayProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaPlayerElementStatics const&), MediaPlayerElement, IMediaPlayerElementStatics>([](IMediaPlayerElementStatics const& f) { return f.AutoPlayProperty(); });
    }
    inline auto MediaPlayerElement::IsFullWindowProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaPlayerElementStatics const&), MediaPlayerElement, IMediaPlayerElementStatics>([](IMediaPlayerElementStatics const& f) { return f.IsFullWindowProperty(); });
    }
    inline auto MediaPlayerElement::MediaPlayerProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaPlayerElementStatics const&), MediaPlayerElement, IMediaPlayerElementStatics>([](IMediaPlayerElementStatics const& f) { return f.MediaPlayerProperty(); });
    }
    inline MediaPlayerPresenter::MediaPlayerPresenter()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MediaPlayerPresenter, IMediaPlayerPresenterFactory>([&](IMediaPlayerPresenterFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MediaPlayerPresenter::MediaPlayerProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaPlayerPresenterStatics const&), MediaPlayerPresenter, IMediaPlayerPresenterStatics>([](IMediaPlayerPresenterStatics const& f) { return f.MediaPlayerProperty(); });
    }
    inline auto MediaPlayerPresenter::StretchProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaPlayerPresenterStatics const&), MediaPlayerPresenter, IMediaPlayerPresenterStatics>([](IMediaPlayerPresenterStatics const& f) { return f.StretchProperty(); });
    }
    inline auto MediaPlayerPresenter::IsFullWindowProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaPlayerPresenterStatics const&), MediaPlayerPresenter, IMediaPlayerPresenterStatics>([](IMediaPlayerPresenterStatics const& f) { return f.IsFullWindowProperty(); });
    }
    inline MediaTransportControls::MediaTransportControls()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MediaTransportControls, IMediaTransportControlsFactory>([&](IMediaTransportControlsFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MediaTransportControls::IsFullWindowButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsFullWindowButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsFullWindowEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsFullWindowEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsZoomButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsZoomButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsZoomEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsZoomEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsFastForwardButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsFastForwardButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsFastForwardEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsFastForwardEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsFastRewindButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsFastRewindButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsFastRewindEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsFastRewindEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsStopButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsStopButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsStopEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsStopEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsVolumeButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsVolumeButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsVolumeEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsVolumeEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsPlaybackRateButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsPlaybackRateButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsPlaybackRateEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsPlaybackRateEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsSeekBarVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsSeekBarVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsSeekEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsSeekEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsCompactProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics const&), MediaTransportControls, IMediaTransportControlsStatics>([](IMediaTransportControlsStatics const& f) { return f.IsCompactProperty(); });
    }
    inline auto MediaTransportControls::IsSkipForwardButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics2 const&), MediaTransportControls, IMediaTransportControlsStatics2>([](IMediaTransportControlsStatics2 const& f) { return f.IsSkipForwardButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsSkipForwardEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics2 const&), MediaTransportControls, IMediaTransportControlsStatics2>([](IMediaTransportControlsStatics2 const& f) { return f.IsSkipForwardEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsSkipBackwardButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics2 const&), MediaTransportControls, IMediaTransportControlsStatics2>([](IMediaTransportControlsStatics2 const& f) { return f.IsSkipBackwardButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsSkipBackwardEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics2 const&), MediaTransportControls, IMediaTransportControlsStatics2>([](IMediaTransportControlsStatics2 const& f) { return f.IsSkipBackwardEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsNextTrackButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics2 const&), MediaTransportControls, IMediaTransportControlsStatics2>([](IMediaTransportControlsStatics2 const& f) { return f.IsNextTrackButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsPreviousTrackButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics2 const&), MediaTransportControls, IMediaTransportControlsStatics2>([](IMediaTransportControlsStatics2 const& f) { return f.IsPreviousTrackButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::FastPlayFallbackBehaviourProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics2 const&), MediaTransportControls, IMediaTransportControlsStatics2>([](IMediaTransportControlsStatics2 const& f) { return f.FastPlayFallbackBehaviourProperty(); });
    }
    inline auto MediaTransportControls::ShowAndHideAutomaticallyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics3 const&), MediaTransportControls, IMediaTransportControlsStatics3>([](IMediaTransportControlsStatics3 const& f) { return f.ShowAndHideAutomaticallyProperty(); });
    }
    inline auto MediaTransportControls::IsRepeatEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics3 const&), MediaTransportControls, IMediaTransportControlsStatics3>([](IMediaTransportControlsStatics3 const& f) { return f.IsRepeatEnabledProperty(); });
    }
    inline auto MediaTransportControls::IsRepeatButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics3 const&), MediaTransportControls, IMediaTransportControlsStatics3>([](IMediaTransportControlsStatics3 const& f) { return f.IsRepeatButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsCompactOverlayButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics4 const&), MediaTransportControls, IMediaTransportControlsStatics4>([](IMediaTransportControlsStatics4 const& f) { return f.IsCompactOverlayButtonVisibleProperty(); });
    }
    inline auto MediaTransportControls::IsCompactOverlayEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsStatics4 const&), MediaTransportControls, IMediaTransportControlsStatics4>([](IMediaTransportControlsStatics4 const& f) { return f.IsCompactOverlayEnabledProperty(); });
    }
    inline auto MediaTransportControlsHelper::DropoutOrderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMediaTransportControlsHelperStatics const&), MediaTransportControlsHelper, IMediaTransportControlsHelperStatics>([](IMediaTransportControlsHelperStatics const& f) { return f.DropoutOrderProperty(); });
    }
    inline auto MediaTransportControlsHelper::GetDropoutOrder(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<MediaTransportControlsHelper, IMediaTransportControlsHelperStatics>([&](IMediaTransportControlsHelperStatics const& f) { return f.GetDropoutOrder(element); });
    }
    inline auto MediaTransportControlsHelper::SetDropoutOrder(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IReference<int32_t> const& value)
    {
        impl::call_factory<MediaTransportControlsHelper, IMediaTransportControlsHelperStatics>([&](IMediaTransportControlsHelperStatics const& f) { return f.SetDropoutOrder(element, value); });
    }
    inline MenuBar::MenuBar()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuBar, IMenuBarFactory>([&](IMenuBarFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MenuBar::ItemsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuBarStatics const&), MenuBar, IMenuBarStatics>([](IMenuBarStatics const& f) { return f.ItemsProperty(); });
    }
    inline MenuBarItem::MenuBarItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuBarItem, IMenuBarItemFactory>([&](IMenuBarItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MenuBarItem::TitleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuBarItemStatics const&), MenuBarItem, IMenuBarItemStatics>([](IMenuBarItemStatics const& f) { return f.TitleProperty(); });
    }
    inline auto MenuBarItem::ItemsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuBarItemStatics const&), MenuBarItem, IMenuBarItemStatics>([](IMenuBarItemStatics const& f) { return f.ItemsProperty(); });
    }
    inline MenuBarItemFlyout::MenuBarItemFlyout()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuBarItemFlyout, IMenuBarItemFlyoutFactory>([&](IMenuBarItemFlyoutFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline MenuFlyout::MenuFlyout()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuFlyout, IMenuFlyoutFactory>([&](IMenuFlyoutFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MenuFlyout::MenuFlyoutPresenterStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuFlyoutStatics const&), MenuFlyout, IMenuFlyoutStatics>([](IMenuFlyoutStatics const& f) { return f.MenuFlyoutPresenterStyleProperty(); });
    }
    inline MenuFlyoutItem::MenuFlyoutItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuFlyoutItem, IMenuFlyoutItemFactory>([&](IMenuFlyoutItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MenuFlyoutItem::TextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuFlyoutItemStatics const&), MenuFlyoutItem, IMenuFlyoutItemStatics>([](IMenuFlyoutItemStatics const& f) { return f.TextProperty(); });
    }
    inline auto MenuFlyoutItem::CommandProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuFlyoutItemStatics const&), MenuFlyoutItem, IMenuFlyoutItemStatics>([](IMenuFlyoutItemStatics const& f) { return f.CommandProperty(); });
    }
    inline auto MenuFlyoutItem::CommandParameterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuFlyoutItemStatics const&), MenuFlyoutItem, IMenuFlyoutItemStatics>([](IMenuFlyoutItemStatics const& f) { return f.CommandParameterProperty(); });
    }
    inline auto MenuFlyoutItem::IconProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuFlyoutItemStatics2 const&), MenuFlyoutItem, IMenuFlyoutItemStatics2>([](IMenuFlyoutItemStatics2 const& f) { return f.IconProperty(); });
    }
    inline auto MenuFlyoutItem::KeyboardAcceleratorTextOverrideProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuFlyoutItemStatics3 const&), MenuFlyoutItem, IMenuFlyoutItemStatics3>([](IMenuFlyoutItemStatics3 const& f) { return f.KeyboardAcceleratorTextOverrideProperty(); });
    }
    inline MenuFlyoutPresenter::MenuFlyoutPresenter()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuFlyoutPresenter, IMenuFlyoutPresenterFactory>([&](IMenuFlyoutPresenterFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto MenuFlyoutPresenter::IsDefaultShadowEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuFlyoutPresenterStatics3 const&), MenuFlyoutPresenter, IMenuFlyoutPresenterStatics3>([](IMenuFlyoutPresenterStatics3 const& f) { return f.IsDefaultShadowEnabledProperty(); });
    }
    inline MenuFlyoutSeparator::MenuFlyoutSeparator()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<MenuFlyoutSeparator, IMenuFlyoutSeparatorFactory>([&](IMenuFlyoutSeparatorFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline MenuFlyoutSubItem::MenuFlyoutSubItem() :
        MenuFlyoutSubItem(impl::call_factory_cast<MenuFlyoutSubItem(*)(winrt::Windows::Foundation::IActivationFactory const&), MenuFlyoutSubItem>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<MenuFlyoutSubItem>(); }))
    {
    }
    inline auto MenuFlyoutSubItem::TextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuFlyoutSubItemStatics const&), MenuFlyoutSubItem, IMenuFlyoutSubItemStatics>([](IMenuFlyoutSubItemStatics const& f) { return f.TextProperty(); });
    }
    inline auto MenuFlyoutSubItem::IconProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IMenuFlyoutSubItemStatics2 const&), MenuFlyoutSubItem, IMenuFlyoutSubItemStatics2>([](IMenuFlyoutSubItemStatics2 const& f) { return f.IconProperty(); });
    }
    inline NavigationView::NavigationView()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationView, INavigationViewFactory>([&](INavigationViewFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto NavigationView::IsPaneOpenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.IsPaneOpenProperty(); });
    }
    inline auto NavigationView::CompactModeThresholdWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.CompactModeThresholdWidthProperty(); });
    }
    inline auto NavigationView::ExpandedModeThresholdWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.ExpandedModeThresholdWidthProperty(); });
    }
    inline auto NavigationView::PaneFooterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.PaneFooterProperty(); });
    }
    inline auto NavigationView::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.HeaderProperty(); });
    }
    inline auto NavigationView::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto NavigationView::DisplayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.DisplayModeProperty(); });
    }
    inline auto NavigationView::IsSettingsVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.IsSettingsVisibleProperty(); });
    }
    inline auto NavigationView::IsPaneToggleButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.IsPaneToggleButtonVisibleProperty(); });
    }
    inline auto NavigationView::AlwaysShowHeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.AlwaysShowHeaderProperty(); });
    }
    inline auto NavigationView::CompactPaneLengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.CompactPaneLengthProperty(); });
    }
    inline auto NavigationView::OpenPaneLengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.OpenPaneLengthProperty(); });
    }
    inline auto NavigationView::PaneToggleButtonStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.PaneToggleButtonStyleProperty(); });
    }
    inline auto NavigationView::MenuItemsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.MenuItemsProperty(); });
    }
    inline auto NavigationView::MenuItemsSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.MenuItemsSourceProperty(); });
    }
    inline auto NavigationView::SelectedItemProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.SelectedItemProperty(); });
    }
    inline auto NavigationView::SettingsItemProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.SettingsItemProperty(); });
    }
    inline auto NavigationView::AutoSuggestBoxProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.AutoSuggestBoxProperty(); });
    }
    inline auto NavigationView::MenuItemTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.MenuItemTemplateProperty(); });
    }
    inline auto NavigationView::MenuItemTemplateSelectorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.MenuItemTemplateSelectorProperty(); });
    }
    inline auto NavigationView::MenuItemContainerStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.MenuItemContainerStyleProperty(); });
    }
    inline auto NavigationView::MenuItemContainerStyleSelectorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics const&), NavigationView, INavigationViewStatics>([](INavigationViewStatics const& f) { return f.MenuItemContainerStyleSelectorProperty(); });
    }
    inline auto NavigationView::IsBackButtonVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics2 const&), NavigationView, INavigationViewStatics2>([](INavigationViewStatics2 const& f) { return f.IsBackButtonVisibleProperty(); });
    }
    inline auto NavigationView::IsBackEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics2 const&), NavigationView, INavigationViewStatics2>([](INavigationViewStatics2 const& f) { return f.IsBackEnabledProperty(); });
    }
    inline auto NavigationView::PaneTitleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics2 const&), NavigationView, INavigationViewStatics2>([](INavigationViewStatics2 const& f) { return f.PaneTitleProperty(); });
    }
    inline auto NavigationView::PaneDisplayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics3 const&), NavigationView, INavigationViewStatics3>([](INavigationViewStatics3 const& f) { return f.PaneDisplayModeProperty(); });
    }
    inline auto NavigationView::PaneHeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics3 const&), NavigationView, INavigationViewStatics3>([](INavigationViewStatics3 const& f) { return f.PaneHeaderProperty(); });
    }
    inline auto NavigationView::PaneCustomContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics3 const&), NavigationView, INavigationViewStatics3>([](INavigationViewStatics3 const& f) { return f.PaneCustomContentProperty(); });
    }
    inline auto NavigationView::ContentOverlayProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics3 const&), NavigationView, INavigationViewStatics3>([](INavigationViewStatics3 const& f) { return f.ContentOverlayProperty(); });
    }
    inline auto NavigationView::IsPaneVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics3 const&), NavigationView, INavigationViewStatics3>([](INavigationViewStatics3 const& f) { return f.IsPaneVisibleProperty(); });
    }
    inline auto NavigationView::SelectionFollowsFocusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics3 const&), NavigationView, INavigationViewStatics3>([](INavigationViewStatics3 const& f) { return f.SelectionFollowsFocusProperty(); });
    }
    inline auto NavigationView::TemplateSettingsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics3 const&), NavigationView, INavigationViewStatics3>([](INavigationViewStatics3 const& f) { return f.TemplateSettingsProperty(); });
    }
    inline auto NavigationView::ShoulderNavigationEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics3 const&), NavigationView, INavigationViewStatics3>([](INavigationViewStatics3 const& f) { return f.ShoulderNavigationEnabledProperty(); });
    }
    inline auto NavigationView::OverflowLabelModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewStatics3 const&), NavigationView, INavigationViewStatics3>([](INavigationViewStatics3 const& f) { return f.OverflowLabelModeProperty(); });
    }
    inline NavigationViewItem::NavigationViewItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationViewItem, INavigationViewItemFactory>([&](INavigationViewItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto NavigationViewItem::IconProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewItemStatics const&), NavigationViewItem, INavigationViewItemStatics>([](INavigationViewItemStatics const& f) { return f.IconProperty(); });
    }
    inline auto NavigationViewItem::CompactPaneLengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewItemStatics const&), NavigationViewItem, INavigationViewItemStatics>([](INavigationViewItemStatics const& f) { return f.CompactPaneLengthProperty(); });
    }
    inline auto NavigationViewItem::SelectsOnInvokedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewItemStatics2 const&), NavigationViewItem, INavigationViewItemStatics2>([](INavigationViewItemStatics2 const& f) { return f.SelectsOnInvokedProperty(); });
    }
    inline NavigationViewItemHeader::NavigationViewItemHeader()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationViewItemHeader, INavigationViewItemHeaderFactory>([&](INavigationViewItemHeaderFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline NavigationViewItemInvokedEventArgs::NavigationViewItemInvokedEventArgs() :
        NavigationViewItemInvokedEventArgs(impl::call_factory_cast<NavigationViewItemInvokedEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), NavigationViewItemInvokedEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<NavigationViewItemInvokedEventArgs>(); }))
    {
    }
    inline NavigationViewItemSeparator::NavigationViewItemSeparator()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationViewItemSeparator, INavigationViewItemSeparatorFactory>([&](INavigationViewItemSeparatorFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline NavigationViewList::NavigationViewList()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationViewList, INavigationViewListFactory>([&](INavigationViewListFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline NavigationViewTemplateSettings::NavigationViewTemplateSettings()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<NavigationViewTemplateSettings, INavigationViewTemplateSettingsFactory>([&](INavigationViewTemplateSettingsFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto NavigationViewTemplateSettings::TopPaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewTemplateSettingsStatics const&), NavigationViewTemplateSettings, INavigationViewTemplateSettingsStatics>([](INavigationViewTemplateSettingsStatics const& f) { return f.TopPaddingProperty(); });
    }
    inline auto NavigationViewTemplateSettings::OverflowButtonVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewTemplateSettingsStatics const&), NavigationViewTemplateSettings, INavigationViewTemplateSettingsStatics>([](INavigationViewTemplateSettingsStatics const& f) { return f.OverflowButtonVisibilityProperty(); });
    }
    inline auto NavigationViewTemplateSettings::PaneToggleButtonVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewTemplateSettingsStatics const&), NavigationViewTemplateSettings, INavigationViewTemplateSettingsStatics>([](INavigationViewTemplateSettingsStatics const& f) { return f.PaneToggleButtonVisibilityProperty(); });
    }
    inline auto NavigationViewTemplateSettings::BackButtonVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewTemplateSettingsStatics const&), NavigationViewTemplateSettings, INavigationViewTemplateSettingsStatics>([](INavigationViewTemplateSettingsStatics const& f) { return f.BackButtonVisibilityProperty(); });
    }
    inline auto NavigationViewTemplateSettings::TopPaneVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewTemplateSettingsStatics const&), NavigationViewTemplateSettings, INavigationViewTemplateSettingsStatics>([](INavigationViewTemplateSettingsStatics const& f) { return f.TopPaneVisibilityProperty(); });
    }
    inline auto NavigationViewTemplateSettings::LeftPaneVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewTemplateSettingsStatics const&), NavigationViewTemplateSettings, INavigationViewTemplateSettingsStatics>([](INavigationViewTemplateSettingsStatics const& f) { return f.LeftPaneVisibilityProperty(); });
    }
    inline auto NavigationViewTemplateSettings::SingleSelectionFollowsFocusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(INavigationViewTemplateSettingsStatics const&), NavigationViewTemplateSettings, INavigationViewTemplateSettingsStatics>([](INavigationViewTemplateSettingsStatics const& f) { return f.SingleSelectionFollowsFocusProperty(); });
    }
    inline Page::Page()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Page, IPageFactory>([&](IPageFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Page::FrameProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPageStatics const&), Page, IPageStatics>([](IPageStatics const& f) { return f.FrameProperty(); });
    }
    inline auto Page::TopAppBarProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPageStatics const&), Page, IPageStatics>([](IPageStatics const& f) { return f.TopAppBarProperty(); });
    }
    inline auto Page::BottomAppBarProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPageStatics const&), Page, IPageStatics>([](IPageStatics const& f) { return f.BottomAppBarProperty(); });
    }
    inline auto Panel::BackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPanelStatics const&), Panel, IPanelStatics>([](IPanelStatics const& f) { return f.BackgroundProperty(); });
    }
    inline auto Panel::IsItemsHostProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPanelStatics const&), Panel, IPanelStatics>([](IPanelStatics const& f) { return f.IsItemsHostProperty(); });
    }
    inline auto Panel::ChildrenTransitionsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPanelStatics const&), Panel, IPanelStatics>([](IPanelStatics const& f) { return f.ChildrenTransitionsProperty(); });
    }
    inline ParallaxView::ParallaxView()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ParallaxView, IParallaxViewFactory>([&](IParallaxViewFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ParallaxView::ChildProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.ChildProperty(); });
    }
    inline auto ParallaxView::HorizontalSourceEndOffsetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.HorizontalSourceEndOffsetProperty(); });
    }
    inline auto ParallaxView::HorizontalSourceOffsetKindProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.HorizontalSourceOffsetKindProperty(); });
    }
    inline auto ParallaxView::HorizontalSourceStartOffsetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.HorizontalSourceStartOffsetProperty(); });
    }
    inline auto ParallaxView::MaxHorizontalShiftRatioProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.MaxHorizontalShiftRatioProperty(); });
    }
    inline auto ParallaxView::HorizontalShiftProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.HorizontalShiftProperty(); });
    }
    inline auto ParallaxView::IsHorizontalShiftClampedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.IsHorizontalShiftClampedProperty(); });
    }
    inline auto ParallaxView::IsVerticalShiftClampedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.IsVerticalShiftClampedProperty(); });
    }
    inline auto ParallaxView::SourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.SourceProperty(); });
    }
    inline auto ParallaxView::VerticalSourceEndOffsetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.VerticalSourceEndOffsetProperty(); });
    }
    inline auto ParallaxView::VerticalSourceOffsetKindProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.VerticalSourceOffsetKindProperty(); });
    }
    inline auto ParallaxView::VerticalSourceStartOffsetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.VerticalSourceStartOffsetProperty(); });
    }
    inline auto ParallaxView::MaxVerticalShiftRatioProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.MaxVerticalShiftRatioProperty(); });
    }
    inline auto ParallaxView::VerticalShiftProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IParallaxViewStatics const&), ParallaxView, IParallaxViewStatics>([](IParallaxViewStatics const& f) { return f.VerticalShiftProperty(); });
    }
    inline PasswordBox::PasswordBox() :
        PasswordBox(impl::call_factory_cast<PasswordBox(*)(winrt::Windows::Foundation::IActivationFactory const&), PasswordBox>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<PasswordBox>(); }))
    {
    }
    inline auto PasswordBox::PasswordProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics const&), PasswordBox, IPasswordBoxStatics>([](IPasswordBoxStatics const& f) { return f.PasswordProperty(); });
    }
    inline auto PasswordBox::PasswordCharProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics const&), PasswordBox, IPasswordBoxStatics>([](IPasswordBoxStatics const& f) { return f.PasswordCharProperty(); });
    }
    inline auto PasswordBox::IsPasswordRevealButtonEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics const&), PasswordBox, IPasswordBoxStatics>([](IPasswordBoxStatics const& f) { return f.IsPasswordRevealButtonEnabledProperty(); });
    }
    inline auto PasswordBox::MaxLengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics const&), PasswordBox, IPasswordBoxStatics>([](IPasswordBoxStatics const& f) { return f.MaxLengthProperty(); });
    }
    inline auto PasswordBox::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics2 const&), PasswordBox, IPasswordBoxStatics2>([](IPasswordBoxStatics2 const& f) { return f.HeaderProperty(); });
    }
    inline auto PasswordBox::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics2 const&), PasswordBox, IPasswordBoxStatics2>([](IPasswordBoxStatics2 const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto PasswordBox::PlaceholderTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics2 const&), PasswordBox, IPasswordBoxStatics2>([](IPasswordBoxStatics2 const& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto PasswordBox::SelectionHighlightColorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics2 const&), PasswordBox, IPasswordBoxStatics2>([](IPasswordBoxStatics2 const& f) { return f.SelectionHighlightColorProperty(); });
    }
    inline auto PasswordBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics2 const&), PasswordBox, IPasswordBoxStatics2>([](IPasswordBoxStatics2 const& f) { return f.PreventKeyboardDisplayOnProgrammaticFocusProperty(); });
    }
    inline auto PasswordBox::PasswordRevealModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics3 const&), PasswordBox, IPasswordBoxStatics3>([](IPasswordBoxStatics3 const& f) { return f.PasswordRevealModeProperty(); });
    }
    inline auto PasswordBox::TextReadingOrderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics3 const&), PasswordBox, IPasswordBoxStatics3>([](IPasswordBoxStatics3 const& f) { return f.TextReadingOrderProperty(); });
    }
    inline auto PasswordBox::InputScopeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics3 const&), PasswordBox, IPasswordBoxStatics3>([](IPasswordBoxStatics3 const& f) { return f.InputScopeProperty(); });
    }
    inline auto PasswordBox::CanPasteClipboardContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics5 const&), PasswordBox, IPasswordBoxStatics5>([](IPasswordBoxStatics5 const& f) { return f.CanPasteClipboardContentProperty(); });
    }
    inline auto PasswordBox::SelectionFlyoutProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics5 const&), PasswordBox, IPasswordBoxStatics5>([](IPasswordBoxStatics5 const& f) { return f.SelectionFlyoutProperty(); });
    }
    inline auto PasswordBox::DescriptionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPasswordBoxStatics5 const&), PasswordBox, IPasswordBoxStatics5>([](IPasswordBoxStatics5 const& f) { return f.DescriptionProperty(); });
    }
    inline PathIcon::PathIcon()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<PathIcon, IPathIconFactory>([&](IPathIconFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto PathIcon::DataProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPathIconStatics const&), PathIcon, IPathIconStatics>([](IPathIconStatics const& f) { return f.DataProperty(); });
    }
    inline PathIconSource::PathIconSource()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<PathIconSource, IPathIconSourceFactory>([&](IPathIconSourceFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto PathIconSource::DataProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPathIconSourceStatics const&), PathIconSource, IPathIconSourceStatics>([](IPathIconSourceStatics const& f) { return f.DataProperty(); });
    }
    inline PersonPicture::PersonPicture()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<PersonPicture, IPersonPictureFactory>([&](IPersonPictureFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto PersonPicture::BadgeNumberProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPersonPictureStatics const&), PersonPicture, IPersonPictureStatics>([](IPersonPictureStatics const& f) { return f.BadgeNumberProperty(); });
    }
    inline auto PersonPicture::BadgeGlyphProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPersonPictureStatics const&), PersonPicture, IPersonPictureStatics>([](IPersonPictureStatics const& f) { return f.BadgeGlyphProperty(); });
    }
    inline auto PersonPicture::BadgeImageSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPersonPictureStatics const&), PersonPicture, IPersonPictureStatics>([](IPersonPictureStatics const& f) { return f.BadgeImageSourceProperty(); });
    }
    inline auto PersonPicture::BadgeTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPersonPictureStatics const&), PersonPicture, IPersonPictureStatics>([](IPersonPictureStatics const& f) { return f.BadgeTextProperty(); });
    }
    inline auto PersonPicture::IsGroupProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPersonPictureStatics const&), PersonPicture, IPersonPictureStatics>([](IPersonPictureStatics const& f) { return f.IsGroupProperty(); });
    }
    inline auto PersonPicture::ContactProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPersonPictureStatics const&), PersonPicture, IPersonPictureStatics>([](IPersonPictureStatics const& f) { return f.ContactProperty(); });
    }
    inline auto PersonPicture::DisplayNameProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPersonPictureStatics const&), PersonPicture, IPersonPictureStatics>([](IPersonPictureStatics const& f) { return f.DisplayNameProperty(); });
    }
    inline auto PersonPicture::InitialsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPersonPictureStatics const&), PersonPicture, IPersonPictureStatics>([](IPersonPictureStatics const& f) { return f.InitialsProperty(); });
    }
    inline auto PersonPicture::PreferSmallImageProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPersonPictureStatics const&), PersonPicture, IPersonPictureStatics>([](IPersonPictureStatics const& f) { return f.PreferSmallImageProperty(); });
    }
    inline auto PersonPicture::ProfilePictureProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPersonPictureStatics const&), PersonPicture, IPersonPictureStatics>([](IPersonPictureStatics const& f) { return f.ProfilePictureProperty(); });
    }
    inline PickerConfirmedEventArgs::PickerConfirmedEventArgs() :
        PickerConfirmedEventArgs(impl::call_factory_cast<PickerConfirmedEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), PickerConfirmedEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<PickerConfirmedEventArgs>(); }))
    {
    }
    inline PickerFlyout::PickerFlyout() :
        PickerFlyout(impl::call_factory_cast<PickerFlyout(*)(winrt::Windows::Foundation::IActivationFactory const&), PickerFlyout>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<PickerFlyout>(); }))
    {
    }
    inline auto PickerFlyout::ContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPickerFlyoutStatics const&), PickerFlyout, IPickerFlyoutStatics>([](IPickerFlyoutStatics const& f) { return f.ContentProperty(); });
    }
    inline auto PickerFlyout::ConfirmationButtonsVisibleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPickerFlyoutStatics const&), PickerFlyout, IPickerFlyoutStatics>([](IPickerFlyoutStatics const& f) { return f.ConfirmationButtonsVisibleProperty(); });
    }
    inline Pivot::Pivot()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Pivot, IPivotFactory>([&](IPivotFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Pivot::TitleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics const&), Pivot, IPivotStatics>([](IPivotStatics const& f) { return f.TitleProperty(); });
    }
    inline auto Pivot::TitleTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics const&), Pivot, IPivotStatics>([](IPivotStatics const& f) { return f.TitleTemplateProperty(); });
    }
    inline auto Pivot::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics const&), Pivot, IPivotStatics>([](IPivotStatics const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto Pivot::SelectedIndexProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics const&), Pivot, IPivotStatics>([](IPivotStatics const& f) { return f.SelectedIndexProperty(); });
    }
    inline auto Pivot::SelectedItemProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics const&), Pivot, IPivotStatics>([](IPivotStatics const& f) { return f.SelectedItemProperty(); });
    }
    inline auto Pivot::IsLockedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics const&), Pivot, IPivotStatics>([](IPivotStatics const& f) { return f.IsLockedProperty(); });
    }
    inline auto Pivot::SlideInAnimationGroupProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics const&), Pivot, IPivotStatics>([](IPivotStatics const& f) { return f.SlideInAnimationGroupProperty(); });
    }
    inline auto Pivot::GetSlideInAnimationGroup(winrt::Windows::UI::Xaml::FrameworkElement const& element)
    {
        return impl::call_factory<Pivot, IPivotStatics>([&](IPivotStatics const& f) { return f.GetSlideInAnimationGroup(element); });
    }
    inline auto Pivot::SetSlideInAnimationGroup(winrt::Windows::UI::Xaml::FrameworkElement const& element, winrt::Windows::UI::Xaml::Controls::PivotSlideInAnimationGroup const& value)
    {
        impl::call_factory<Pivot, IPivotStatics>([&](IPivotStatics const& f) { return f.SetSlideInAnimationGroup(element, value); });
    }
    inline auto Pivot::LeftHeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics2 const&), Pivot, IPivotStatics2>([](IPivotStatics2 const& f) { return f.LeftHeaderProperty(); });
    }
    inline auto Pivot::LeftHeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics2 const&), Pivot, IPivotStatics2>([](IPivotStatics2 const& f) { return f.LeftHeaderTemplateProperty(); });
    }
    inline auto Pivot::RightHeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics2 const&), Pivot, IPivotStatics2>([](IPivotStatics2 const& f) { return f.RightHeaderProperty(); });
    }
    inline auto Pivot::RightHeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics2 const&), Pivot, IPivotStatics2>([](IPivotStatics2 const& f) { return f.RightHeaderTemplateProperty(); });
    }
    inline auto Pivot::HeaderFocusVisualPlacementProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics3 const&), Pivot, IPivotStatics3>([](IPivotStatics3 const& f) { return f.HeaderFocusVisualPlacementProperty(); });
    }
    inline auto Pivot::IsHeaderItemsCarouselEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotStatics3 const&), Pivot, IPivotStatics3>([](IPivotStatics3 const& f) { return f.IsHeaderItemsCarouselEnabledProperty(); });
    }
    inline PivotItem::PivotItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<PivotItem, IPivotItemFactory>([&](IPivotItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto PivotItem::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IPivotItemStatics const&), PivotItem, IPivotItemStatics>([](IPivotItemStatics const& f) { return f.HeaderProperty(); });
    }
    inline PivotItemEventArgs::PivotItemEventArgs() :
        PivotItemEventArgs(impl::call_factory_cast<PivotItemEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), PivotItemEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<PivotItemEventArgs>(); }))
    {
    }
    inline ProgressBar::ProgressBar()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ProgressBar, IProgressBarFactory>([&](IProgressBarFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ProgressBar::IsIndeterminateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IProgressBarStatics const&), ProgressBar, IProgressBarStatics>([](IProgressBarStatics const& f) { return f.IsIndeterminateProperty(); });
    }
    inline auto ProgressBar::ShowErrorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IProgressBarStatics const&), ProgressBar, IProgressBarStatics>([](IProgressBarStatics const& f) { return f.ShowErrorProperty(); });
    }
    inline auto ProgressBar::ShowPausedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IProgressBarStatics const&), ProgressBar, IProgressBarStatics>([](IProgressBarStatics const& f) { return f.ShowPausedProperty(); });
    }
    inline ProgressRing::ProgressRing() :
        ProgressRing(impl::call_factory_cast<ProgressRing(*)(winrt::Windows::Foundation::IActivationFactory const&), ProgressRing>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ProgressRing>(); }))
    {
    }
    inline auto ProgressRing::IsActiveProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IProgressRingStatics const&), ProgressRing, IProgressRingStatics>([](IProgressRingStatics const& f) { return f.IsActiveProperty(); });
    }
    inline RadioButton::RadioButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RadioButton, IRadioButtonFactory>([&](IRadioButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RadioButton::GroupNameProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRadioButtonStatics const&), RadioButton, IRadioButtonStatics>([](IRadioButtonStatics const& f) { return f.GroupNameProperty(); });
    }
    inline RatingControl::RatingControl()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RatingControl, IRatingControlFactory>([&](IRatingControlFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RatingControl::CaptionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingControlStatics const&), RatingControl, IRatingControlStatics>([](IRatingControlStatics const& f) { return f.CaptionProperty(); });
    }
    inline auto RatingControl::InitialSetValueProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingControlStatics const&), RatingControl, IRatingControlStatics>([](IRatingControlStatics const& f) { return f.InitialSetValueProperty(); });
    }
    inline auto RatingControl::IsClearEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingControlStatics const&), RatingControl, IRatingControlStatics>([](IRatingControlStatics const& f) { return f.IsClearEnabledProperty(); });
    }
    inline auto RatingControl::IsReadOnlyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingControlStatics const&), RatingControl, IRatingControlStatics>([](IRatingControlStatics const& f) { return f.IsReadOnlyProperty(); });
    }
    inline auto RatingControl::MaxRatingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingControlStatics const&), RatingControl, IRatingControlStatics>([](IRatingControlStatics const& f) { return f.MaxRatingProperty(); });
    }
    inline auto RatingControl::PlaceholderValueProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingControlStatics const&), RatingControl, IRatingControlStatics>([](IRatingControlStatics const& f) { return f.PlaceholderValueProperty(); });
    }
    inline auto RatingControl::ItemInfoProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingControlStatics const&), RatingControl, IRatingControlStatics>([](IRatingControlStatics const& f) { return f.ItemInfoProperty(); });
    }
    inline auto RatingControl::ValueProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingControlStatics const&), RatingControl, IRatingControlStatics>([](IRatingControlStatics const& f) { return f.ValueProperty(); });
    }
    inline RatingItemFontInfo::RatingItemFontInfo()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RatingItemFontInfo, IRatingItemFontInfoFactory>([&](IRatingItemFontInfoFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RatingItemFontInfo::DisabledGlyphProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemFontInfoStatics const&), RatingItemFontInfo, IRatingItemFontInfoStatics>([](IRatingItemFontInfoStatics const& f) { return f.DisabledGlyphProperty(); });
    }
    inline auto RatingItemFontInfo::GlyphProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemFontInfoStatics const&), RatingItemFontInfo, IRatingItemFontInfoStatics>([](IRatingItemFontInfoStatics const& f) { return f.GlyphProperty(); });
    }
    inline auto RatingItemFontInfo::PlaceholderGlyphProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemFontInfoStatics const&), RatingItemFontInfo, IRatingItemFontInfoStatics>([](IRatingItemFontInfoStatics const& f) { return f.PlaceholderGlyphProperty(); });
    }
    inline auto RatingItemFontInfo::PointerOverGlyphProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemFontInfoStatics const&), RatingItemFontInfo, IRatingItemFontInfoStatics>([](IRatingItemFontInfoStatics const& f) { return f.PointerOverGlyphProperty(); });
    }
    inline auto RatingItemFontInfo::PointerOverPlaceholderGlyphProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemFontInfoStatics const&), RatingItemFontInfo, IRatingItemFontInfoStatics>([](IRatingItemFontInfoStatics const& f) { return f.PointerOverPlaceholderGlyphProperty(); });
    }
    inline auto RatingItemFontInfo::UnsetGlyphProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemFontInfoStatics const&), RatingItemFontInfo, IRatingItemFontInfoStatics>([](IRatingItemFontInfoStatics const& f) { return f.UnsetGlyphProperty(); });
    }
    inline RatingItemImageInfo::RatingItemImageInfo()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RatingItemImageInfo, IRatingItemImageInfoFactory>([&](IRatingItemImageInfoFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RatingItemImageInfo::DisabledImageProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemImageInfoStatics const&), RatingItemImageInfo, IRatingItemImageInfoStatics>([](IRatingItemImageInfoStatics const& f) { return f.DisabledImageProperty(); });
    }
    inline auto RatingItemImageInfo::ImageProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemImageInfoStatics const&), RatingItemImageInfo, IRatingItemImageInfoStatics>([](IRatingItemImageInfoStatics const& f) { return f.ImageProperty(); });
    }
    inline auto RatingItemImageInfo::PlaceholderImageProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemImageInfoStatics const&), RatingItemImageInfo, IRatingItemImageInfoStatics>([](IRatingItemImageInfoStatics const& f) { return f.PlaceholderImageProperty(); });
    }
    inline auto RatingItemImageInfo::PointerOverImageProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemImageInfoStatics const&), RatingItemImageInfo, IRatingItemImageInfoStatics>([](IRatingItemImageInfoStatics const& f) { return f.PointerOverImageProperty(); });
    }
    inline auto RatingItemImageInfo::PointerOverPlaceholderImageProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemImageInfoStatics const&), RatingItemImageInfo, IRatingItemImageInfoStatics>([](IRatingItemImageInfoStatics const& f) { return f.PointerOverPlaceholderImageProperty(); });
    }
    inline auto RatingItemImageInfo::UnsetImageProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRatingItemImageInfoStatics const&), RatingItemImageInfo, IRatingItemImageInfoStatics>([](IRatingItemImageInfoStatics const& f) { return f.UnsetImageProperty(); });
    }
    inline RatingItemInfo::RatingItemInfo()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RatingItemInfo, IRatingItemInfoFactory>([&](IRatingItemInfoFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline RefreshContainer::RefreshContainer()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RefreshContainer, IRefreshContainerFactory>([&](IRefreshContainerFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RefreshContainer::VisualizerProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRefreshContainerStatics const&), RefreshContainer, IRefreshContainerStatics>([](IRefreshContainerStatics const& f) { return f.VisualizerProperty(); });
    }
    inline auto RefreshContainer::PullDirectionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRefreshContainerStatics const&), RefreshContainer, IRefreshContainerStatics>([](IRefreshContainerStatics const& f) { return f.PullDirectionProperty(); });
    }
    inline RefreshVisualizer::RefreshVisualizer()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RefreshVisualizer, IRefreshVisualizerFactory>([&](IRefreshVisualizerFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RefreshVisualizer::InfoProviderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRefreshVisualizerStatics const&), RefreshVisualizer, IRefreshVisualizerStatics>([](IRefreshVisualizerStatics const& f) { return f.InfoProviderProperty(); });
    }
    inline auto RefreshVisualizer::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRefreshVisualizerStatics const&), RefreshVisualizer, IRefreshVisualizerStatics>([](IRefreshVisualizerStatics const& f) { return f.OrientationProperty(); });
    }
    inline auto RefreshVisualizer::ContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRefreshVisualizerStatics const&), RefreshVisualizer, IRefreshVisualizerStatics>([](IRefreshVisualizerStatics const& f) { return f.ContentProperty(); });
    }
    inline auto RefreshVisualizer::StateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRefreshVisualizerStatics const&), RefreshVisualizer, IRefreshVisualizerStatics>([](IRefreshVisualizerStatics const& f) { return f.StateProperty(); });
    }
    inline RelativePanel::RelativePanel()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RelativePanel, IRelativePanelFactory>([&](IRelativePanelFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RelativePanel::LeftOfProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.LeftOfProperty(); });
    }
    inline auto RelativePanel::GetLeftOf(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetLeftOf(element); });
    }
    inline auto RelativePanel::SetLeftOf(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetLeftOf(element, value); });
    }
    inline auto RelativePanel::AboveProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AboveProperty(); });
    }
    inline auto RelativePanel::GetAbove(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAbove(element); });
    }
    inline auto RelativePanel::SetAbove(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAbove(element, value); });
    }
    inline auto RelativePanel::RightOfProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.RightOfProperty(); });
    }
    inline auto RelativePanel::GetRightOf(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetRightOf(element); });
    }
    inline auto RelativePanel::SetRightOf(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetRightOf(element, value); });
    }
    inline auto RelativePanel::BelowProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.BelowProperty(); });
    }
    inline auto RelativePanel::GetBelow(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetBelow(element); });
    }
    inline auto RelativePanel::SetBelow(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetBelow(element, value); });
    }
    inline auto RelativePanel::AlignHorizontalCenterWithProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignHorizontalCenterWithProperty(); });
    }
    inline auto RelativePanel::GetAlignHorizontalCenterWith(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignHorizontalCenterWith(element); });
    }
    inline auto RelativePanel::SetAlignHorizontalCenterWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignHorizontalCenterWith(element, value); });
    }
    inline auto RelativePanel::AlignVerticalCenterWithProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignVerticalCenterWithProperty(); });
    }
    inline auto RelativePanel::GetAlignVerticalCenterWith(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignVerticalCenterWith(element); });
    }
    inline auto RelativePanel::SetAlignVerticalCenterWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignVerticalCenterWith(element, value); });
    }
    inline auto RelativePanel::AlignLeftWithProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignLeftWithProperty(); });
    }
    inline auto RelativePanel::GetAlignLeftWith(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignLeftWith(element); });
    }
    inline auto RelativePanel::SetAlignLeftWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignLeftWith(element, value); });
    }
    inline auto RelativePanel::AlignTopWithProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignTopWithProperty(); });
    }
    inline auto RelativePanel::GetAlignTopWith(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignTopWith(element); });
    }
    inline auto RelativePanel::SetAlignTopWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignTopWith(element, value); });
    }
    inline auto RelativePanel::AlignRightWithProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignRightWithProperty(); });
    }
    inline auto RelativePanel::GetAlignRightWith(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignRightWith(element); });
    }
    inline auto RelativePanel::SetAlignRightWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignRightWith(element, value); });
    }
    inline auto RelativePanel::AlignBottomWithProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignBottomWithProperty(); });
    }
    inline auto RelativePanel::GetAlignBottomWith(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignBottomWith(element); });
    }
    inline auto RelativePanel::SetAlignBottomWith(winrt::Windows::UI::Xaml::UIElement const& element, winrt::Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignBottomWith(element, value); });
    }
    inline auto RelativePanel::AlignLeftWithPanelProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignLeftWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignLeftWithPanel(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignLeftWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignLeftWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignLeftWithPanel(element, value); });
    }
    inline auto RelativePanel::AlignTopWithPanelProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignTopWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignTopWithPanel(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignTopWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignTopWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignTopWithPanel(element, value); });
    }
    inline auto RelativePanel::AlignRightWithPanelProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignRightWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignRightWithPanel(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignRightWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignRightWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignRightWithPanel(element, value); });
    }
    inline auto RelativePanel::AlignBottomWithPanelProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignBottomWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignBottomWithPanel(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignBottomWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignBottomWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignBottomWithPanel(element, value); });
    }
    inline auto RelativePanel::AlignHorizontalCenterWithPanelProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignHorizontalCenterWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignHorizontalCenterWithPanel(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignHorizontalCenterWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignHorizontalCenterWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignHorizontalCenterWithPanel(element, value); });
    }
    inline auto RelativePanel::AlignVerticalCenterWithPanelProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.AlignVerticalCenterWithPanelProperty(); });
    }
    inline auto RelativePanel::GetAlignVerticalCenterWithPanel(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.GetAlignVerticalCenterWithPanel(element); });
    }
    inline auto RelativePanel::SetAlignVerticalCenterWithPanel(winrt::Windows::UI::Xaml::UIElement const& element, bool value)
    {
        impl::call_factory<RelativePanel, IRelativePanelStatics>([&](IRelativePanelStatics const& f) { return f.SetAlignVerticalCenterWithPanel(element, value); });
    }
    inline auto RelativePanel::BorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.BorderBrushProperty(); });
    }
    inline auto RelativePanel::BorderThicknessProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.BorderThicknessProperty(); });
    }
    inline auto RelativePanel::CornerRadiusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.CornerRadiusProperty(); });
    }
    inline auto RelativePanel::PaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics const&), RelativePanel, IRelativePanelStatics>([](IRelativePanelStatics const& f) { return f.PaddingProperty(); });
    }
    inline auto RelativePanel::BackgroundSizingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRelativePanelStatics2 const&), RelativePanel, IRelativePanelStatics2>([](IRelativePanelStatics2 const& f) { return f.BackgroundSizingProperty(); });
    }
    inline RichEditBox::RichEditBox()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<RichEditBox, IRichEditBoxFactory>([&](IRichEditBoxFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto RichEditBox::IsReadOnlyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics const&), RichEditBox, IRichEditBoxStatics>([](IRichEditBoxStatics const& f) { return f.IsReadOnlyProperty(); });
    }
    inline auto RichEditBox::AcceptsReturnProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics const&), RichEditBox, IRichEditBoxStatics>([](IRichEditBoxStatics const& f) { return f.AcceptsReturnProperty(); });
    }
    inline auto RichEditBox::TextAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics const&), RichEditBox, IRichEditBoxStatics>([](IRichEditBoxStatics const& f) { return f.TextAlignmentProperty(); });
    }
    inline auto RichEditBox::TextWrappingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics const&), RichEditBox, IRichEditBoxStatics>([](IRichEditBoxStatics const& f) { return f.TextWrappingProperty(); });
    }
    inline auto RichEditBox::IsSpellCheckEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics const&), RichEditBox, IRichEditBoxStatics>([](IRichEditBoxStatics const& f) { return f.IsSpellCheckEnabledProperty(); });
    }
    inline auto RichEditBox::IsTextPredictionEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics const&), RichEditBox, IRichEditBoxStatics>([](IRichEditBoxStatics const& f) { return f.IsTextPredictionEnabledProperty(); });
    }
    inline auto RichEditBox::InputScopeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics const&), RichEditBox, IRichEditBoxStatics>([](IRichEditBoxStatics const& f) { return f.InputScopeProperty(); });
    }
    inline auto RichEditBox::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics2 const&), RichEditBox, IRichEditBoxStatics2>([](IRichEditBoxStatics2 const& f) { return f.HeaderProperty(); });
    }
    inline auto RichEditBox::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics2 const&), RichEditBox, IRichEditBoxStatics2>([](IRichEditBoxStatics2 const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto RichEditBox::PlaceholderTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics2 const&), RichEditBox, IRichEditBoxStatics2>([](IRichEditBoxStatics2 const& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto RichEditBox::SelectionHighlightColorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics2 const&), RichEditBox, IRichEditBoxStatics2>([](IRichEditBoxStatics2 const& f) { return f.SelectionHighlightColorProperty(); });
    }
    inline auto RichEditBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics2 const&), RichEditBox, IRichEditBoxStatics2>([](IRichEditBoxStatics2 const& f) { return f.PreventKeyboardDisplayOnProgrammaticFocusProperty(); });
    }
    inline auto RichEditBox::IsColorFontEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics2 const&), RichEditBox, IRichEditBoxStatics2>([](IRichEditBoxStatics2 const& f) { return f.IsColorFontEnabledProperty(); });
    }
    inline auto RichEditBox::DesiredCandidateWindowAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics3 const&), RichEditBox, IRichEditBoxStatics3>([](IRichEditBoxStatics3 const& f) { return f.DesiredCandidateWindowAlignmentProperty(); });
    }
    inline auto RichEditBox::TextReadingOrderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics3 const&), RichEditBox, IRichEditBoxStatics3>([](IRichEditBoxStatics3 const& f) { return f.TextReadingOrderProperty(); });
    }
    inline auto RichEditBox::ClipboardCopyFormatProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics4 const&), RichEditBox, IRichEditBoxStatics4>([](IRichEditBoxStatics4 const& f) { return f.ClipboardCopyFormatProperty(); });
    }
    inline auto RichEditBox::SelectionHighlightColorWhenNotFocusedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics5 const&), RichEditBox, IRichEditBoxStatics5>([](IRichEditBoxStatics5 const& f) { return f.SelectionHighlightColorWhenNotFocusedProperty(); });
    }
    inline auto RichEditBox::MaxLengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics5 const&), RichEditBox, IRichEditBoxStatics5>([](IRichEditBoxStatics5 const& f) { return f.MaxLengthProperty(); });
    }
    inline auto RichEditBox::HorizontalTextAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics6 const&), RichEditBox, IRichEditBoxStatics6>([](IRichEditBoxStatics6 const& f) { return f.HorizontalTextAlignmentProperty(); });
    }
    inline auto RichEditBox::CharacterCasingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics6 const&), RichEditBox, IRichEditBoxStatics6>([](IRichEditBoxStatics6 const& f) { return f.CharacterCasingProperty(); });
    }
    inline auto RichEditBox::DisabledFormattingAcceleratorsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics6 const&), RichEditBox, IRichEditBoxStatics6>([](IRichEditBoxStatics6 const& f) { return f.DisabledFormattingAcceleratorsProperty(); });
    }
    inline auto RichEditBox::ContentLinkForegroundColorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics7 const&), RichEditBox, IRichEditBoxStatics7>([](IRichEditBoxStatics7 const& f) { return f.ContentLinkForegroundColorProperty(); });
    }
    inline auto RichEditBox::ContentLinkBackgroundColorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics7 const&), RichEditBox, IRichEditBoxStatics7>([](IRichEditBoxStatics7 const& f) { return f.ContentLinkBackgroundColorProperty(); });
    }
    inline auto RichEditBox::ContentLinkProvidersProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics7 const&), RichEditBox, IRichEditBoxStatics7>([](IRichEditBoxStatics7 const& f) { return f.ContentLinkProvidersProperty(); });
    }
    inline auto RichEditBox::HandwritingViewProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics7 const&), RichEditBox, IRichEditBoxStatics7>([](IRichEditBoxStatics7 const& f) { return f.HandwritingViewProperty(); });
    }
    inline auto RichEditBox::IsHandwritingViewEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics7 const&), RichEditBox, IRichEditBoxStatics7>([](IRichEditBoxStatics7 const& f) { return f.IsHandwritingViewEnabledProperty(); });
    }
    inline auto RichEditBox::SelectionFlyoutProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics8 const&), RichEditBox, IRichEditBoxStatics8>([](IRichEditBoxStatics8 const& f) { return f.SelectionFlyoutProperty(); });
    }
    inline auto RichEditBox::ProofingMenuFlyoutProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics8 const&), RichEditBox, IRichEditBoxStatics8>([](IRichEditBoxStatics8 const& f) { return f.ProofingMenuFlyoutProperty(); });
    }
    inline auto RichEditBox::DescriptionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichEditBoxStatics8 const&), RichEditBox, IRichEditBoxStatics8>([](IRichEditBoxStatics8 const& f) { return f.DescriptionProperty(); });
    }
    inline RichTextBlock::RichTextBlock() :
        RichTextBlock(impl::call_factory_cast<RichTextBlock(*)(winrt::Windows::Foundation::IActivationFactory const&), RichTextBlock>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<RichTextBlock>(); }))
    {
    }
    inline auto RichTextBlock::FontSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.FontSizeProperty(); });
    }
    inline auto RichTextBlock::FontFamilyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.FontFamilyProperty(); });
    }
    inline auto RichTextBlock::FontWeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.FontWeightProperty(); });
    }
    inline auto RichTextBlock::FontStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.FontStyleProperty(); });
    }
    inline auto RichTextBlock::FontStretchProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.FontStretchProperty(); });
    }
    inline auto RichTextBlock::ForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.ForegroundProperty(); });
    }
    inline auto RichTextBlock::TextWrappingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.TextWrappingProperty(); });
    }
    inline auto RichTextBlock::TextTrimmingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.TextTrimmingProperty(); });
    }
    inline auto RichTextBlock::TextAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.TextAlignmentProperty(); });
    }
    inline auto RichTextBlock::PaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.PaddingProperty(); });
    }
    inline auto RichTextBlock::LineHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.LineHeightProperty(); });
    }
    inline auto RichTextBlock::LineStackingStrategyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.LineStackingStrategyProperty(); });
    }
    inline auto RichTextBlock::CharacterSpacingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.CharacterSpacingProperty(); });
    }
    inline auto RichTextBlock::OverflowContentTargetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.OverflowContentTargetProperty(); });
    }
    inline auto RichTextBlock::IsTextSelectionEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.IsTextSelectionEnabledProperty(); });
    }
    inline auto RichTextBlock::HasOverflowContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.HasOverflowContentProperty(); });
    }
    inline auto RichTextBlock::SelectedTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.SelectedTextProperty(); });
    }
    inline auto RichTextBlock::TextIndentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics const&), RichTextBlock, IRichTextBlockStatics>([](IRichTextBlockStatics const& f) { return f.TextIndentProperty(); });
    }
    inline auto RichTextBlock::MaxLinesProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics2 const&), RichTextBlock, IRichTextBlockStatics2>([](IRichTextBlockStatics2 const& f) { return f.MaxLinesProperty(); });
    }
    inline auto RichTextBlock::TextLineBoundsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics2 const&), RichTextBlock, IRichTextBlockStatics2>([](IRichTextBlockStatics2 const& f) { return f.TextLineBoundsProperty(); });
    }
    inline auto RichTextBlock::SelectionHighlightColorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics2 const&), RichTextBlock, IRichTextBlockStatics2>([](IRichTextBlockStatics2 const& f) { return f.SelectionHighlightColorProperty(); });
    }
    inline auto RichTextBlock::OpticalMarginAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics2 const&), RichTextBlock, IRichTextBlockStatics2>([](IRichTextBlockStatics2 const& f) { return f.OpticalMarginAlignmentProperty(); });
    }
    inline auto RichTextBlock::IsColorFontEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics2 const&), RichTextBlock, IRichTextBlockStatics2>([](IRichTextBlockStatics2 const& f) { return f.IsColorFontEnabledProperty(); });
    }
    inline auto RichTextBlock::TextReadingOrderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics2 const&), RichTextBlock, IRichTextBlockStatics2>([](IRichTextBlockStatics2 const& f) { return f.TextReadingOrderProperty(); });
    }
    inline auto RichTextBlock::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics3 const&), RichTextBlock, IRichTextBlockStatics3>([](IRichTextBlockStatics3 const& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto RichTextBlock::TextDecorationsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics4 const&), RichTextBlock, IRichTextBlockStatics4>([](IRichTextBlockStatics4 const& f) { return f.TextDecorationsProperty(); });
    }
    inline auto RichTextBlock::IsTextTrimmedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics5 const&), RichTextBlock, IRichTextBlockStatics5>([](IRichTextBlockStatics5 const& f) { return f.IsTextTrimmedProperty(); });
    }
    inline auto RichTextBlock::HorizontalTextAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics5 const&), RichTextBlock, IRichTextBlockStatics5>([](IRichTextBlockStatics5 const& f) { return f.HorizontalTextAlignmentProperty(); });
    }
    inline auto RichTextBlock::SelectionFlyoutProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockStatics6 const&), RichTextBlock, IRichTextBlockStatics6>([](IRichTextBlockStatics6 const& f) { return f.SelectionFlyoutProperty(); });
    }
    inline RichTextBlockOverflow::RichTextBlockOverflow() :
        RichTextBlockOverflow(impl::call_factory_cast<RichTextBlockOverflow(*)(winrt::Windows::Foundation::IActivationFactory const&), RichTextBlockOverflow>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<RichTextBlockOverflow>(); }))
    {
    }
    inline auto RichTextBlockOverflow::OverflowContentTargetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockOverflowStatics const&), RichTextBlockOverflow, IRichTextBlockOverflowStatics>([](IRichTextBlockOverflowStatics const& f) { return f.OverflowContentTargetProperty(); });
    }
    inline auto RichTextBlockOverflow::PaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockOverflowStatics const&), RichTextBlockOverflow, IRichTextBlockOverflowStatics>([](IRichTextBlockOverflowStatics const& f) { return f.PaddingProperty(); });
    }
    inline auto RichTextBlockOverflow::HasOverflowContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockOverflowStatics const&), RichTextBlockOverflow, IRichTextBlockOverflowStatics>([](IRichTextBlockOverflowStatics const& f) { return f.HasOverflowContentProperty(); });
    }
    inline auto RichTextBlockOverflow::MaxLinesProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockOverflowStatics2 const&), RichTextBlockOverflow, IRichTextBlockOverflowStatics2>([](IRichTextBlockOverflowStatics2 const& f) { return f.MaxLinesProperty(); });
    }
    inline auto RichTextBlockOverflow::IsTextTrimmedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRichTextBlockOverflowStatics3 const&), RichTextBlockOverflow, IRichTextBlockOverflowStatics3>([](IRichTextBlockOverflowStatics3 const& f) { return f.IsTextTrimmedProperty(); });
    }
    inline RowDefinition::RowDefinition() :
        RowDefinition(impl::call_factory_cast<RowDefinition(*)(winrt::Windows::Foundation::IActivationFactory const&), RowDefinition>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<RowDefinition>(); }))
    {
    }
    inline auto RowDefinition::HeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRowDefinitionStatics const&), RowDefinition, IRowDefinitionStatics>([](IRowDefinitionStatics const& f) { return f.HeightProperty(); });
    }
    inline auto RowDefinition::MaxHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRowDefinitionStatics const&), RowDefinition, IRowDefinitionStatics>([](IRowDefinitionStatics const& f) { return f.MaxHeightProperty(); });
    }
    inline auto RowDefinition::MinHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IRowDefinitionStatics const&), RowDefinition, IRowDefinitionStatics>([](IRowDefinitionStatics const& f) { return f.MinHeightProperty(); });
    }
    inline ScrollContentPresenter::ScrollContentPresenter() :
        ScrollContentPresenter(impl::call_factory_cast<ScrollContentPresenter(*)(winrt::Windows::Foundation::IActivationFactory const&), ScrollContentPresenter>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ScrollContentPresenter>(); }))
    {
    }
    inline auto ScrollContentPresenter::CanContentRenderOutsideBoundsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollContentPresenterStatics2 const&), ScrollContentPresenter, IScrollContentPresenterStatics2>([](IScrollContentPresenterStatics2 const& f) { return f.CanContentRenderOutsideBoundsProperty(); });
    }
    inline auto ScrollContentPresenter::SizesContentToTemplatedParentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollContentPresenterStatics2 const&), ScrollContentPresenter, IScrollContentPresenterStatics2>([](IScrollContentPresenterStatics2 const& f) { return f.SizesContentToTemplatedParentProperty(); });
    }
    inline ScrollViewer::ScrollViewer() :
        ScrollViewer(impl::call_factory_cast<ScrollViewer(*)(winrt::Windows::Foundation::IActivationFactory const&), ScrollViewer>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ScrollViewer>(); }))
    {
    }
    inline auto ScrollViewer::HorizontalSnapPointsAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.HorizontalSnapPointsAlignmentProperty(); });
    }
    inline auto ScrollViewer::VerticalSnapPointsAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.VerticalSnapPointsAlignmentProperty(); });
    }
    inline auto ScrollViewer::HorizontalSnapPointsTypeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.HorizontalSnapPointsTypeProperty(); });
    }
    inline auto ScrollViewer::VerticalSnapPointsTypeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.VerticalSnapPointsTypeProperty(); });
    }
    inline auto ScrollViewer::ZoomSnapPointsTypeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ZoomSnapPointsTypeProperty(); });
    }
    inline auto ScrollViewer::HorizontalOffsetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.HorizontalOffsetProperty(); });
    }
    inline auto ScrollViewer::ViewportWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ViewportWidthProperty(); });
    }
    inline auto ScrollViewer::ScrollableWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ScrollableWidthProperty(); });
    }
    inline auto ScrollViewer::ComputedHorizontalScrollBarVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ComputedHorizontalScrollBarVisibilityProperty(); });
    }
    inline auto ScrollViewer::ExtentWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ExtentWidthProperty(); });
    }
    inline auto ScrollViewer::VerticalOffsetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.VerticalOffsetProperty(); });
    }
    inline auto ScrollViewer::ViewportHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ViewportHeightProperty(); });
    }
    inline auto ScrollViewer::ScrollableHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ScrollableHeightProperty(); });
    }
    inline auto ScrollViewer::ComputedVerticalScrollBarVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ComputedVerticalScrollBarVisibilityProperty(); });
    }
    inline auto ScrollViewer::ExtentHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ExtentHeightProperty(); });
    }
    inline auto ScrollViewer::MinZoomFactorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.MinZoomFactorProperty(); });
    }
    inline auto ScrollViewer::MaxZoomFactorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.MaxZoomFactorProperty(); });
    }
    inline auto ScrollViewer::ZoomFactorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ZoomFactorProperty(); });
    }
    inline auto ScrollViewer::ZoomSnapPointsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ZoomSnapPointsProperty(); });
    }
    inline auto ScrollViewer::HorizontalScrollBarVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.HorizontalScrollBarVisibilityProperty(); });
    }
    inline auto ScrollViewer::GetHorizontalScrollBarVisibility(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetHorizontalScrollBarVisibility(element); });
    }
    inline auto ScrollViewer::SetHorizontalScrollBarVisibility(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility const& horizontalScrollBarVisibility)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetHorizontalScrollBarVisibility(element, horizontalScrollBarVisibility); });
    }
    inline auto ScrollViewer::VerticalScrollBarVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.VerticalScrollBarVisibilityProperty(); });
    }
    inline auto ScrollViewer::GetVerticalScrollBarVisibility(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetVerticalScrollBarVisibility(element); });
    }
    inline auto ScrollViewer::SetVerticalScrollBarVisibility(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::ScrollBarVisibility const& verticalScrollBarVisibility)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetVerticalScrollBarVisibility(element, verticalScrollBarVisibility); });
    }
    inline auto ScrollViewer::IsHorizontalRailEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.IsHorizontalRailEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsHorizontalRailEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetIsHorizontalRailEnabled(element); });
    }
    inline auto ScrollViewer::SetIsHorizontalRailEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalRailEnabled)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetIsHorizontalRailEnabled(element, isHorizontalRailEnabled); });
    }
    inline auto ScrollViewer::IsVerticalRailEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.IsVerticalRailEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsVerticalRailEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetIsVerticalRailEnabled(element); });
    }
    inline auto ScrollViewer::SetIsVerticalRailEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isVerticalRailEnabled)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetIsVerticalRailEnabled(element, isVerticalRailEnabled); });
    }
    inline auto ScrollViewer::IsHorizontalScrollChainingEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.IsHorizontalScrollChainingEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsHorizontalScrollChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetIsHorizontalScrollChainingEnabled(element); });
    }
    inline auto ScrollViewer::SetIsHorizontalScrollChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isHorizontalScrollChainingEnabled)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetIsHorizontalScrollChainingEnabled(element, isHorizontalScrollChainingEnabled); });
    }
    inline auto ScrollViewer::IsVerticalScrollChainingEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.IsVerticalScrollChainingEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsVerticalScrollChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetIsVerticalScrollChainingEnabled(element); });
    }
    inline auto ScrollViewer::SetIsVerticalScrollChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isVerticalScrollChainingEnabled)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetIsVerticalScrollChainingEnabled(element, isVerticalScrollChainingEnabled); });
    }
    inline auto ScrollViewer::IsZoomChainingEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.IsZoomChainingEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsZoomChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetIsZoomChainingEnabled(element); });
    }
    inline auto ScrollViewer::SetIsZoomChainingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isZoomChainingEnabled)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetIsZoomChainingEnabled(element, isZoomChainingEnabled); });
    }
    inline auto ScrollViewer::IsScrollInertiaEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.IsScrollInertiaEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsScrollInertiaEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetIsScrollInertiaEnabled(element); });
    }
    inline auto ScrollViewer::SetIsScrollInertiaEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isScrollInertiaEnabled)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetIsScrollInertiaEnabled(element, isScrollInertiaEnabled); });
    }
    inline auto ScrollViewer::IsZoomInertiaEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.IsZoomInertiaEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsZoomInertiaEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetIsZoomInertiaEnabled(element); });
    }
    inline auto ScrollViewer::SetIsZoomInertiaEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isZoomInertiaEnabled)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetIsZoomInertiaEnabled(element, isZoomInertiaEnabled); });
    }
    inline auto ScrollViewer::HorizontalScrollModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.HorizontalScrollModeProperty(); });
    }
    inline auto ScrollViewer::GetHorizontalScrollMode(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetHorizontalScrollMode(element); });
    }
    inline auto ScrollViewer::SetHorizontalScrollMode(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::ScrollMode const& horizontalScrollMode)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetHorizontalScrollMode(element, horizontalScrollMode); });
    }
    inline auto ScrollViewer::VerticalScrollModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.VerticalScrollModeProperty(); });
    }
    inline auto ScrollViewer::GetVerticalScrollMode(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetVerticalScrollMode(element); });
    }
    inline auto ScrollViewer::SetVerticalScrollMode(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::ScrollMode const& verticalScrollMode)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetVerticalScrollMode(element, verticalScrollMode); });
    }
    inline auto ScrollViewer::ZoomModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.ZoomModeProperty(); });
    }
    inline auto ScrollViewer::GetZoomMode(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetZoomMode(element); });
    }
    inline auto ScrollViewer::SetZoomMode(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::ZoomMode const& zoomMode)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetZoomMode(element, zoomMode); });
    }
    inline auto ScrollViewer::IsDeferredScrollingEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.IsDeferredScrollingEnabledProperty(); });
    }
    inline auto ScrollViewer::GetIsDeferredScrollingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetIsDeferredScrollingEnabled(element); });
    }
    inline auto ScrollViewer::SetIsDeferredScrollingEnabled(winrt::Windows::UI::Xaml::DependencyObject const& element, bool isDeferredScrollingEnabled)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetIsDeferredScrollingEnabled(element, isDeferredScrollingEnabled); });
    }
    inline auto ScrollViewer::BringIntoViewOnFocusChangeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics const&), ScrollViewer, IScrollViewerStatics>([](IScrollViewerStatics const& f) { return f.BringIntoViewOnFocusChangeProperty(); });
    }
    inline auto ScrollViewer::GetBringIntoViewOnFocusChange(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.GetBringIntoViewOnFocusChange(element); });
    }
    inline auto ScrollViewer::SetBringIntoViewOnFocusChange(winrt::Windows::UI::Xaml::DependencyObject const& element, bool bringIntoViewOnFocusChange)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics>([&](IScrollViewerStatics const& f) { return f.SetBringIntoViewOnFocusChange(element, bringIntoViewOnFocusChange); });
    }
    inline auto ScrollViewer::TopLeftHeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics2 const&), ScrollViewer, IScrollViewerStatics2>([](IScrollViewerStatics2 const& f) { return f.TopLeftHeaderProperty(); });
    }
    inline auto ScrollViewer::LeftHeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics2 const&), ScrollViewer, IScrollViewerStatics2>([](IScrollViewerStatics2 const& f) { return f.LeftHeaderProperty(); });
    }
    inline auto ScrollViewer::TopHeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics2 const&), ScrollViewer, IScrollViewerStatics2>([](IScrollViewerStatics2 const& f) { return f.TopHeaderProperty(); });
    }
    inline auto ScrollViewer::ReduceViewportForCoreInputViewOcclusionsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics4 const&), ScrollViewer, IScrollViewerStatics4>([](IScrollViewerStatics4 const& f) { return f.ReduceViewportForCoreInputViewOcclusionsProperty(); });
    }
    inline auto ScrollViewer::HorizontalAnchorRatioProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics4 const&), ScrollViewer, IScrollViewerStatics4>([](IScrollViewerStatics4 const& f) { return f.HorizontalAnchorRatioProperty(); });
    }
    inline auto ScrollViewer::VerticalAnchorRatioProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics4 const&), ScrollViewer, IScrollViewerStatics4>([](IScrollViewerStatics4 const& f) { return f.VerticalAnchorRatioProperty(); });
    }
    inline auto ScrollViewer::CanContentRenderOutsideBoundsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IScrollViewerStatics4 const&), ScrollViewer, IScrollViewerStatics4>([](IScrollViewerStatics4 const& f) { return f.CanContentRenderOutsideBoundsProperty(); });
    }
    inline auto ScrollViewer::GetCanContentRenderOutsideBounds(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ScrollViewer, IScrollViewerStatics4>([&](IScrollViewerStatics4 const& f) { return f.GetCanContentRenderOutsideBounds(element); });
    }
    inline auto ScrollViewer::SetCanContentRenderOutsideBounds(winrt::Windows::UI::Xaml::DependencyObject const& element, bool canContentRenderOutsideBounds)
    {
        impl::call_factory<ScrollViewer, IScrollViewerStatics4>([&](IScrollViewerStatics4 const& f) { return f.SetCanContentRenderOutsideBounds(element, canContentRenderOutsideBounds); });
    }
    inline ScrollViewerViewChangedEventArgs::ScrollViewerViewChangedEventArgs() :
        ScrollViewerViewChangedEventArgs(impl::call_factory_cast<ScrollViewerViewChangedEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), ScrollViewerViewChangedEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ScrollViewerViewChangedEventArgs>(); }))
    {
    }
    inline SearchBox::SearchBox()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SearchBox, ISearchBoxFactory>([&](ISearchBoxFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SearchBox::SearchHistoryEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISearchBoxStatics const&), SearchBox, ISearchBoxStatics>([](ISearchBoxStatics const& f) { return f.SearchHistoryEnabledProperty(); });
    }
    inline auto SearchBox::SearchHistoryContextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISearchBoxStatics const&), SearchBox, ISearchBoxStatics>([](ISearchBoxStatics const& f) { return f.SearchHistoryContextProperty(); });
    }
    inline auto SearchBox::PlaceholderTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISearchBoxStatics const&), SearchBox, ISearchBoxStatics>([](ISearchBoxStatics const& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto SearchBox::QueryTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISearchBoxStatics const&), SearchBox, ISearchBoxStatics>([](ISearchBoxStatics const& f) { return f.QueryTextProperty(); });
    }
    inline auto SearchBox::FocusOnKeyboardInputProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISearchBoxStatics const&), SearchBox, ISearchBoxStatics>([](ISearchBoxStatics const& f) { return f.FocusOnKeyboardInputProperty(); });
    }
    inline auto SearchBox::ChooseSuggestionOnEnterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISearchBoxStatics const&), SearchBox, ISearchBoxStatics>([](ISearchBoxStatics const& f) { return f.ChooseSuggestionOnEnterProperty(); });
    }
    inline SearchBoxResultSuggestionChosenEventArgs::SearchBoxResultSuggestionChosenEventArgs() :
        SearchBoxResultSuggestionChosenEventArgs(impl::call_factory_cast<SearchBoxResultSuggestionChosenEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), SearchBoxResultSuggestionChosenEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<SearchBoxResultSuggestionChosenEventArgs>(); }))
    {
    }
    inline SelectionChangedEventArgs::SelectionChangedEventArgs(param::vector<winrt::Windows::Foundation::IInspectable> const& removedItems, param::vector<winrt::Windows::Foundation::IInspectable> const& addedItems)
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SelectionChangedEventArgs, ISelectionChangedEventArgsFactory>([&](ISelectionChangedEventArgsFactory const& f) { return f.CreateInstanceWithRemovedItemsAndAddedItems(removedItems, addedItems, baseInterface, innerInterface); });
    }
    inline SemanticZoom::SemanticZoom() :
        SemanticZoom(impl::call_factory_cast<SemanticZoom(*)(winrt::Windows::Foundation::IActivationFactory const&), SemanticZoom>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<SemanticZoom>(); }))
    {
    }
    inline auto SemanticZoom::ZoomedInViewProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISemanticZoomStatics const&), SemanticZoom, ISemanticZoomStatics>([](ISemanticZoomStatics const& f) { return f.ZoomedInViewProperty(); });
    }
    inline auto SemanticZoom::ZoomedOutViewProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISemanticZoomStatics const&), SemanticZoom, ISemanticZoomStatics>([](ISemanticZoomStatics const& f) { return f.ZoomedOutViewProperty(); });
    }
    inline auto SemanticZoom::IsZoomedInViewActiveProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISemanticZoomStatics const&), SemanticZoom, ISemanticZoomStatics>([](ISemanticZoomStatics const& f) { return f.IsZoomedInViewActiveProperty(); });
    }
    inline auto SemanticZoom::CanChangeViewsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISemanticZoomStatics const&), SemanticZoom, ISemanticZoomStatics>([](ISemanticZoomStatics const& f) { return f.CanChangeViewsProperty(); });
    }
    inline auto SemanticZoom::IsZoomOutButtonEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISemanticZoomStatics const&), SemanticZoom, ISemanticZoomStatics>([](ISemanticZoomStatics const& f) { return f.IsZoomOutButtonEnabledProperty(); });
    }
    inline SemanticZoomLocation::SemanticZoomLocation() :
        SemanticZoomLocation(impl::call_factory_cast<SemanticZoomLocation(*)(winrt::Windows::Foundation::IActivationFactory const&), SemanticZoomLocation>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<SemanticZoomLocation>(); }))
    {
    }
    inline SemanticZoomViewChangedEventArgs::SemanticZoomViewChangedEventArgs() :
        SemanticZoomViewChangedEventArgs(impl::call_factory_cast<SemanticZoomViewChangedEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), SemanticZoomViewChangedEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<SemanticZoomViewChangedEventArgs>(); }))
    {
    }
    inline SettingsFlyout::SettingsFlyout()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SettingsFlyout, ISettingsFlyoutFactory>([&](ISettingsFlyoutFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SettingsFlyout::TitleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISettingsFlyoutStatics const&), SettingsFlyout, ISettingsFlyoutStatics>([](ISettingsFlyoutStatics const& f) { return f.TitleProperty(); });
    }
    inline auto SettingsFlyout::HeaderBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISettingsFlyoutStatics const&), SettingsFlyout, ISettingsFlyoutStatics>([](ISettingsFlyoutStatics const& f) { return f.HeaderBackgroundProperty(); });
    }
    inline auto SettingsFlyout::HeaderForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISettingsFlyoutStatics const&), SettingsFlyout, ISettingsFlyoutStatics>([](ISettingsFlyoutStatics const& f) { return f.HeaderForegroundProperty(); });
    }
    inline auto SettingsFlyout::IconSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISettingsFlyoutStatics const&), SettingsFlyout, ISettingsFlyoutStatics>([](ISettingsFlyoutStatics const& f) { return f.IconSourceProperty(); });
    }
    inline Slider::Slider()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<Slider, ISliderFactory>([&](ISliderFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto Slider::IntermediateValueProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISliderStatics const&), Slider, ISliderStatics>([](ISliderStatics const& f) { return f.IntermediateValueProperty(); });
    }
    inline auto Slider::StepFrequencyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISliderStatics const&), Slider, ISliderStatics>([](ISliderStatics const& f) { return f.StepFrequencyProperty(); });
    }
    inline auto Slider::SnapsToProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISliderStatics const&), Slider, ISliderStatics>([](ISliderStatics const& f) { return f.SnapsToProperty(); });
    }
    inline auto Slider::TickFrequencyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISliderStatics const&), Slider, ISliderStatics>([](ISliderStatics const& f) { return f.TickFrequencyProperty(); });
    }
    inline auto Slider::TickPlacementProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISliderStatics const&), Slider, ISliderStatics>([](ISliderStatics const& f) { return f.TickPlacementProperty(); });
    }
    inline auto Slider::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISliderStatics const&), Slider, ISliderStatics>([](ISliderStatics const& f) { return f.OrientationProperty(); });
    }
    inline auto Slider::IsDirectionReversedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISliderStatics const&), Slider, ISliderStatics>([](ISliderStatics const& f) { return f.IsDirectionReversedProperty(); });
    }
    inline auto Slider::IsThumbToolTipEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISliderStatics const&), Slider, ISliderStatics>([](ISliderStatics const& f) { return f.IsThumbToolTipEnabledProperty(); });
    }
    inline auto Slider::ThumbToolTipValueConverterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISliderStatics const&), Slider, ISliderStatics>([](ISliderStatics const& f) { return f.ThumbToolTipValueConverterProperty(); });
    }
    inline auto Slider::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISliderStatics2 const&), Slider, ISliderStatics2>([](ISliderStatics2 const& f) { return f.HeaderProperty(); });
    }
    inline auto Slider::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISliderStatics2 const&), Slider, ISliderStatics2>([](ISliderStatics2 const& f) { return f.HeaderTemplateProperty(); });
    }
    inline SplitButton::SplitButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SplitButton, ISplitButtonFactory>([&](ISplitButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SplitButton::FlyoutProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitButtonStatics const&), SplitButton, ISplitButtonStatics>([](ISplitButtonStatics const& f) { return f.FlyoutProperty(); });
    }
    inline auto SplitButton::CommandProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitButtonStatics const&), SplitButton, ISplitButtonStatics>([](ISplitButtonStatics const& f) { return f.CommandProperty(); });
    }
    inline auto SplitButton::CommandParameterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitButtonStatics const&), SplitButton, ISplitButtonStatics>([](ISplitButtonStatics const& f) { return f.CommandParameterProperty(); });
    }
    inline SplitButtonAutomationPeer::SplitButtonAutomationPeer(winrt::Windows::UI::Xaml::Controls::SplitButton const& owner)
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SplitButtonAutomationPeer, ISplitButtonAutomationPeerFactory>([&](ISplitButtonAutomationPeerFactory const& f) { return f.CreateInstance(owner, baseInterface, innerInterface); });
    }
    inline SplitView::SplitView()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SplitView, ISplitViewFactory>([&](ISplitViewFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SplitView::ContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitViewStatics const&), SplitView, ISplitViewStatics>([](ISplitViewStatics const& f) { return f.ContentProperty(); });
    }
    inline auto SplitView::PaneProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitViewStatics const&), SplitView, ISplitViewStatics>([](ISplitViewStatics const& f) { return f.PaneProperty(); });
    }
    inline auto SplitView::IsPaneOpenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitViewStatics const&), SplitView, ISplitViewStatics>([](ISplitViewStatics const& f) { return f.IsPaneOpenProperty(); });
    }
    inline auto SplitView::OpenPaneLengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitViewStatics const&), SplitView, ISplitViewStatics>([](ISplitViewStatics const& f) { return f.OpenPaneLengthProperty(); });
    }
    inline auto SplitView::CompactPaneLengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitViewStatics const&), SplitView, ISplitViewStatics>([](ISplitViewStatics const& f) { return f.CompactPaneLengthProperty(); });
    }
    inline auto SplitView::PanePlacementProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitViewStatics const&), SplitView, ISplitViewStatics>([](ISplitViewStatics const& f) { return f.PanePlacementProperty(); });
    }
    inline auto SplitView::DisplayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitViewStatics const&), SplitView, ISplitViewStatics>([](ISplitViewStatics const& f) { return f.DisplayModeProperty(); });
    }
    inline auto SplitView::TemplateSettingsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitViewStatics const&), SplitView, ISplitViewStatics>([](ISplitViewStatics const& f) { return f.TemplateSettingsProperty(); });
    }
    inline auto SplitView::PaneBackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitViewStatics const&), SplitView, ISplitViewStatics>([](ISplitViewStatics const& f) { return f.PaneBackgroundProperty(); });
    }
    inline auto SplitView::LightDismissOverlayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISplitViewStatics2 const&), SplitView, ISplitViewStatics2>([](ISplitViewStatics2 const& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline StackPanel::StackPanel()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<StackPanel, IStackPanelFactory>([&](IStackPanelFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto StackPanel::AreScrollSnapPointsRegularProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IStackPanelStatics const&), StackPanel, IStackPanelStatics>([](IStackPanelStatics const& f) { return f.AreScrollSnapPointsRegularProperty(); });
    }
    inline auto StackPanel::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IStackPanelStatics const&), StackPanel, IStackPanelStatics>([](IStackPanelStatics const& f) { return f.OrientationProperty(); });
    }
    inline auto StackPanel::BorderBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IStackPanelStatics2 const&), StackPanel, IStackPanelStatics2>([](IStackPanelStatics2 const& f) { return f.BorderBrushProperty(); });
    }
    inline auto StackPanel::BorderThicknessProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IStackPanelStatics2 const&), StackPanel, IStackPanelStatics2>([](IStackPanelStatics2 const& f) { return f.BorderThicknessProperty(); });
    }
    inline auto StackPanel::CornerRadiusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IStackPanelStatics2 const&), StackPanel, IStackPanelStatics2>([](IStackPanelStatics2 const& f) { return f.CornerRadiusProperty(); });
    }
    inline auto StackPanel::PaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IStackPanelStatics2 const&), StackPanel, IStackPanelStatics2>([](IStackPanelStatics2 const& f) { return f.PaddingProperty(); });
    }
    inline auto StackPanel::SpacingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IStackPanelStatics4 const&), StackPanel, IStackPanelStatics4>([](IStackPanelStatics4 const& f) { return f.SpacingProperty(); });
    }
    inline auto StackPanel::BackgroundSizingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IStackPanelStatics5 const&), StackPanel, IStackPanelStatics5>([](IStackPanelStatics5 const& f) { return f.BackgroundSizingProperty(); });
    }
    inline StyleSelector::StyleSelector()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<StyleSelector, IStyleSelectorFactory>([&](IStyleSelectorFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline SwapChainBackgroundPanel::SwapChainBackgroundPanel()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SwapChainBackgroundPanel, ISwapChainBackgroundPanelFactory>([&](ISwapChainBackgroundPanelFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline SwapChainPanel::SwapChainPanel()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SwapChainPanel, ISwapChainPanelFactory>([&](ISwapChainPanelFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SwapChainPanel::CompositionScaleXProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwapChainPanelStatics const&), SwapChainPanel, ISwapChainPanelStatics>([](ISwapChainPanelStatics const& f) { return f.CompositionScaleXProperty(); });
    }
    inline auto SwapChainPanel::CompositionScaleYProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwapChainPanelStatics const&), SwapChainPanel, ISwapChainPanelStatics>([](ISwapChainPanelStatics const& f) { return f.CompositionScaleYProperty(); });
    }
    inline SwipeControl::SwipeControl()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SwipeControl, ISwipeControlFactory>([&](ISwipeControlFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SwipeControl::LeftItemsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeControlStatics const&), SwipeControl, ISwipeControlStatics>([](ISwipeControlStatics const& f) { return f.LeftItemsProperty(); });
    }
    inline auto SwipeControl::RightItemsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeControlStatics const&), SwipeControl, ISwipeControlStatics>([](ISwipeControlStatics const& f) { return f.RightItemsProperty(); });
    }
    inline auto SwipeControl::TopItemsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeControlStatics const&), SwipeControl, ISwipeControlStatics>([](ISwipeControlStatics const& f) { return f.TopItemsProperty(); });
    }
    inline auto SwipeControl::BottomItemsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeControlStatics const&), SwipeControl, ISwipeControlStatics>([](ISwipeControlStatics const& f) { return f.BottomItemsProperty(); });
    }
    inline SwipeItem::SwipeItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SwipeItem, ISwipeItemFactory>([&](ISwipeItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SwipeItem::IconSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeItemStatics const&), SwipeItem, ISwipeItemStatics>([](ISwipeItemStatics const& f) { return f.IconSourceProperty(); });
    }
    inline auto SwipeItem::TextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeItemStatics const&), SwipeItem, ISwipeItemStatics>([](ISwipeItemStatics const& f) { return f.TextProperty(); });
    }
    inline auto SwipeItem::BackgroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeItemStatics const&), SwipeItem, ISwipeItemStatics>([](ISwipeItemStatics const& f) { return f.BackgroundProperty(); });
    }
    inline auto SwipeItem::ForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeItemStatics const&), SwipeItem, ISwipeItemStatics>([](ISwipeItemStatics const& f) { return f.ForegroundProperty(); });
    }
    inline auto SwipeItem::CommandProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeItemStatics const&), SwipeItem, ISwipeItemStatics>([](ISwipeItemStatics const& f) { return f.CommandProperty(); });
    }
    inline auto SwipeItem::CommandParameterProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeItemStatics const&), SwipeItem, ISwipeItemStatics>([](ISwipeItemStatics const& f) { return f.CommandParameterProperty(); });
    }
    inline auto SwipeItem::BehaviorOnInvokedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeItemStatics const&), SwipeItem, ISwipeItemStatics>([](ISwipeItemStatics const& f) { return f.BehaviorOnInvokedProperty(); });
    }
    inline SwipeItems::SwipeItems()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SwipeItems, ISwipeItemsFactory>([&](ISwipeItemsFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SwipeItems::ModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISwipeItemsStatics const&), SwipeItems, ISwipeItemsStatics>([](ISwipeItemsStatics const& f) { return f.ModeProperty(); });
    }
    inline SymbolIcon::SymbolIcon() :
        SymbolIcon(impl::call_factory_cast<SymbolIcon(*)(winrt::Windows::Foundation::IActivationFactory const&), SymbolIcon>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<SymbolIcon>(); }))
    {
    }
    inline SymbolIcon::SymbolIcon(winrt::Windows::UI::Xaml::Controls::Symbol const& symbol) :
        SymbolIcon(impl::call_factory<SymbolIcon, ISymbolIconFactory>([&](ISymbolIconFactory const& f) { return f.CreateInstanceWithSymbol(symbol); }))
    {
    }
    inline auto SymbolIcon::SymbolProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISymbolIconStatics const&), SymbolIcon, ISymbolIconStatics>([](ISymbolIconStatics const& f) { return f.SymbolProperty(); });
    }
    inline SymbolIconSource::SymbolIconSource()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<SymbolIconSource, ISymbolIconSourceFactory>([&](ISymbolIconSourceFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto SymbolIconSource::SymbolProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ISymbolIconSourceStatics const&), SymbolIconSource, ISymbolIconSourceStatics>([](ISymbolIconSourceStatics const& f) { return f.SymbolProperty(); });
    }
    inline TextBlock::TextBlock() :
        TextBlock(impl::call_factory_cast<TextBlock(*)(winrt::Windows::Foundation::IActivationFactory const&), TextBlock>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<TextBlock>(); }))
    {
    }
    inline auto TextBlock::FontSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.FontSizeProperty(); });
    }
    inline auto TextBlock::FontFamilyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.FontFamilyProperty(); });
    }
    inline auto TextBlock::FontWeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.FontWeightProperty(); });
    }
    inline auto TextBlock::FontStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.FontStyleProperty(); });
    }
    inline auto TextBlock::FontStretchProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.FontStretchProperty(); });
    }
    inline auto TextBlock::CharacterSpacingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.CharacterSpacingProperty(); });
    }
    inline auto TextBlock::ForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.ForegroundProperty(); });
    }
    inline auto TextBlock::TextWrappingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.TextWrappingProperty(); });
    }
    inline auto TextBlock::TextTrimmingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.TextTrimmingProperty(); });
    }
    inline auto TextBlock::TextAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.TextAlignmentProperty(); });
    }
    inline auto TextBlock::TextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.TextProperty(); });
    }
    inline auto TextBlock::PaddingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.PaddingProperty(); });
    }
    inline auto TextBlock::LineHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.LineHeightProperty(); });
    }
    inline auto TextBlock::LineStackingStrategyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.LineStackingStrategyProperty(); });
    }
    inline auto TextBlock::IsTextSelectionEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.IsTextSelectionEnabledProperty(); });
    }
    inline auto TextBlock::SelectedTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics const&), TextBlock, ITextBlockStatics>([](ITextBlockStatics const& f) { return f.SelectedTextProperty(); });
    }
    inline auto TextBlock::SelectionHighlightColorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics2 const&), TextBlock, ITextBlockStatics2>([](ITextBlockStatics2 const& f) { return f.SelectionHighlightColorProperty(); });
    }
    inline auto TextBlock::MaxLinesProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics2 const&), TextBlock, ITextBlockStatics2>([](ITextBlockStatics2 const& f) { return f.MaxLinesProperty(); });
    }
    inline auto TextBlock::TextLineBoundsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics2 const&), TextBlock, ITextBlockStatics2>([](ITextBlockStatics2 const& f) { return f.TextLineBoundsProperty(); });
    }
    inline auto TextBlock::OpticalMarginAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics2 const&), TextBlock, ITextBlockStatics2>([](ITextBlockStatics2 const& f) { return f.OpticalMarginAlignmentProperty(); });
    }
    inline auto TextBlock::IsColorFontEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics2 const&), TextBlock, ITextBlockStatics2>([](ITextBlockStatics2 const& f) { return f.IsColorFontEnabledProperty(); });
    }
    inline auto TextBlock::TextReadingOrderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics2 const&), TextBlock, ITextBlockStatics2>([](ITextBlockStatics2 const& f) { return f.TextReadingOrderProperty(); });
    }
    inline auto TextBlock::IsTextScaleFactorEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics3 const&), TextBlock, ITextBlockStatics3>([](ITextBlockStatics3 const& f) { return f.IsTextScaleFactorEnabledProperty(); });
    }
    inline auto TextBlock::TextDecorationsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics5 const&), TextBlock, ITextBlockStatics5>([](ITextBlockStatics5 const& f) { return f.TextDecorationsProperty(); });
    }
    inline auto TextBlock::IsTextTrimmedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics6 const&), TextBlock, ITextBlockStatics6>([](ITextBlockStatics6 const& f) { return f.IsTextTrimmedProperty(); });
    }
    inline auto TextBlock::HorizontalTextAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics6 const&), TextBlock, ITextBlockStatics6>([](ITextBlockStatics6 const& f) { return f.HorizontalTextAlignmentProperty(); });
    }
    inline auto TextBlock::SelectionFlyoutProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBlockStatics7 const&), TextBlock, ITextBlockStatics7>([](ITextBlockStatics7 const& f) { return f.SelectionFlyoutProperty(); });
    }
    inline TextBox::TextBox()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TextBox, ITextBoxFactory>([&](ITextBoxFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TextBox::TextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics const&), TextBox, ITextBoxStatics>([](ITextBoxStatics const& f) { return f.TextProperty(); });
    }
    inline auto TextBox::MaxLengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics const&), TextBox, ITextBoxStatics>([](ITextBoxStatics const& f) { return f.MaxLengthProperty(); });
    }
    inline auto TextBox::IsReadOnlyProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics const&), TextBox, ITextBoxStatics>([](ITextBoxStatics const& f) { return f.IsReadOnlyProperty(); });
    }
    inline auto TextBox::AcceptsReturnProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics const&), TextBox, ITextBoxStatics>([](ITextBoxStatics const& f) { return f.AcceptsReturnProperty(); });
    }
    inline auto TextBox::TextAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics const&), TextBox, ITextBoxStatics>([](ITextBoxStatics const& f) { return f.TextAlignmentProperty(); });
    }
    inline auto TextBox::TextWrappingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics const&), TextBox, ITextBoxStatics>([](ITextBoxStatics const& f) { return f.TextWrappingProperty(); });
    }
    inline auto TextBox::IsSpellCheckEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics const&), TextBox, ITextBoxStatics>([](ITextBoxStatics const& f) { return f.IsSpellCheckEnabledProperty(); });
    }
    inline auto TextBox::IsTextPredictionEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics const&), TextBox, ITextBoxStatics>([](ITextBoxStatics const& f) { return f.IsTextPredictionEnabledProperty(); });
    }
    inline auto TextBox::InputScopeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics const&), TextBox, ITextBoxStatics>([](ITextBoxStatics const& f) { return f.InputScopeProperty(); });
    }
    inline auto TextBox::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics2 const&), TextBox, ITextBoxStatics2>([](ITextBoxStatics2 const& f) { return f.HeaderProperty(); });
    }
    inline auto TextBox::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics2 const&), TextBox, ITextBoxStatics2>([](ITextBoxStatics2 const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto TextBox::PlaceholderTextProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics2 const&), TextBox, ITextBoxStatics2>([](ITextBoxStatics2 const& f) { return f.PlaceholderTextProperty(); });
    }
    inline auto TextBox::SelectionHighlightColorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics2 const&), TextBox, ITextBoxStatics2>([](ITextBoxStatics2 const& f) { return f.SelectionHighlightColorProperty(); });
    }
    inline auto TextBox::PreventKeyboardDisplayOnProgrammaticFocusProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics2 const&), TextBox, ITextBoxStatics2>([](ITextBoxStatics2 const& f) { return f.PreventKeyboardDisplayOnProgrammaticFocusProperty(); });
    }
    inline auto TextBox::IsColorFontEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics2 const&), TextBox, ITextBoxStatics2>([](ITextBoxStatics2 const& f) { return f.IsColorFontEnabledProperty(); });
    }
    inline auto TextBox::DesiredCandidateWindowAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics3 const&), TextBox, ITextBoxStatics3>([](ITextBoxStatics3 const& f) { return f.DesiredCandidateWindowAlignmentProperty(); });
    }
    inline auto TextBox::TextReadingOrderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics3 const&), TextBox, ITextBoxStatics3>([](ITextBoxStatics3 const& f) { return f.TextReadingOrderProperty(); });
    }
    inline auto TextBox::SelectionHighlightColorWhenNotFocusedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics5 const&), TextBox, ITextBoxStatics5>([](ITextBoxStatics5 const& f) { return f.SelectionHighlightColorWhenNotFocusedProperty(); });
    }
    inline auto TextBox::HorizontalTextAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics6 const&), TextBox, ITextBoxStatics6>([](ITextBoxStatics6 const& f) { return f.HorizontalTextAlignmentProperty(); });
    }
    inline auto TextBox::CharacterCasingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics6 const&), TextBox, ITextBoxStatics6>([](ITextBoxStatics6 const& f) { return f.CharacterCasingProperty(); });
    }
    inline auto TextBox::PlaceholderForegroundProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics6 const&), TextBox, ITextBoxStatics6>([](ITextBoxStatics6 const& f) { return f.PlaceholderForegroundProperty(); });
    }
    inline auto TextBox::HandwritingViewProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics7 const&), TextBox, ITextBoxStatics7>([](ITextBoxStatics7 const& f) { return f.HandwritingViewProperty(); });
    }
    inline auto TextBox::IsHandwritingViewEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics7 const&), TextBox, ITextBoxStatics7>([](ITextBoxStatics7 const& f) { return f.IsHandwritingViewEnabledProperty(); });
    }
    inline auto TextBox::CanPasteClipboardContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics8 const&), TextBox, ITextBoxStatics8>([](ITextBoxStatics8 const& f) { return f.CanPasteClipboardContentProperty(); });
    }
    inline auto TextBox::CanUndoProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics8 const&), TextBox, ITextBoxStatics8>([](ITextBoxStatics8 const& f) { return f.CanUndoProperty(); });
    }
    inline auto TextBox::CanRedoProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics8 const&), TextBox, ITextBoxStatics8>([](ITextBoxStatics8 const& f) { return f.CanRedoProperty(); });
    }
    inline auto TextBox::SelectionFlyoutProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics8 const&), TextBox, ITextBoxStatics8>([](ITextBoxStatics8 const& f) { return f.SelectionFlyoutProperty(); });
    }
    inline auto TextBox::ProofingMenuFlyoutProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics8 const&), TextBox, ITextBoxStatics8>([](ITextBoxStatics8 const& f) { return f.ProofingMenuFlyoutProperty(); });
    }
    inline auto TextBox::DescriptionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITextBoxStatics8 const&), TextBox, ITextBoxStatics8>([](ITextBoxStatics8 const& f) { return f.DescriptionProperty(); });
    }
    inline TextCommandBarFlyout::TextCommandBarFlyout()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TextCommandBarFlyout, ITextCommandBarFlyoutFactory>([&](ITextCommandBarFlyoutFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline TimePickedEventArgs::TimePickedEventArgs() :
        TimePickedEventArgs(impl::call_factory_cast<TimePickedEventArgs(*)(winrt::Windows::Foundation::IActivationFactory const&), TimePickedEventArgs>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<TimePickedEventArgs>(); }))
    {
    }
    inline TimePicker::TimePicker()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TimePicker, ITimePickerFactory>([&](ITimePickerFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TimePicker::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITimePickerStatics const&), TimePicker, ITimePickerStatics>([](ITimePickerStatics const& f) { return f.HeaderProperty(); });
    }
    inline auto TimePicker::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITimePickerStatics const&), TimePicker, ITimePickerStatics>([](ITimePickerStatics const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto TimePicker::ClockIdentifierProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITimePickerStatics const&), TimePicker, ITimePickerStatics>([](ITimePickerStatics const& f) { return f.ClockIdentifierProperty(); });
    }
    inline auto TimePicker::MinuteIncrementProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITimePickerStatics const&), TimePicker, ITimePickerStatics>([](ITimePickerStatics const& f) { return f.MinuteIncrementProperty(); });
    }
    inline auto TimePicker::TimeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITimePickerStatics const&), TimePicker, ITimePickerStatics>([](ITimePickerStatics const& f) { return f.TimeProperty(); });
    }
    inline auto TimePicker::LightDismissOverlayModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITimePickerStatics2 const&), TimePicker, ITimePickerStatics2>([](ITimePickerStatics2 const& f) { return f.LightDismissOverlayModeProperty(); });
    }
    inline auto TimePicker::SelectedTimeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITimePickerStatics3 const&), TimePicker, ITimePickerStatics3>([](ITimePickerStatics3 const& f) { return f.SelectedTimeProperty(); });
    }
    inline TimePickerFlyout::TimePickerFlyout() :
        TimePickerFlyout(impl::call_factory_cast<TimePickerFlyout(*)(winrt::Windows::Foundation::IActivationFactory const&), TimePickerFlyout>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<TimePickerFlyout>(); }))
    {
    }
    inline auto TimePickerFlyout::ClockIdentifierProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITimePickerFlyoutStatics const&), TimePickerFlyout, ITimePickerFlyoutStatics>([](ITimePickerFlyoutStatics const& f) { return f.ClockIdentifierProperty(); });
    }
    inline auto TimePickerFlyout::TimeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITimePickerFlyoutStatics const&), TimePickerFlyout, ITimePickerFlyoutStatics>([](ITimePickerFlyoutStatics const& f) { return f.TimeProperty(); });
    }
    inline auto TimePickerFlyout::MinuteIncrementProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITimePickerFlyoutStatics const&), TimePickerFlyout, ITimePickerFlyoutStatics>([](ITimePickerFlyoutStatics const& f) { return f.MinuteIncrementProperty(); });
    }
    inline auto TimePickerFlyoutPresenter::IsDefaultShadowEnabledProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITimePickerFlyoutPresenterStatics2 const&), TimePickerFlyoutPresenter, ITimePickerFlyoutPresenterStatics2>([](ITimePickerFlyoutPresenterStatics2 const& f) { return f.IsDefaultShadowEnabledProperty(); });
    }
    inline ToggleMenuFlyoutItem::ToggleMenuFlyoutItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ToggleMenuFlyoutItem, IToggleMenuFlyoutItemFactory>([&](IToggleMenuFlyoutItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ToggleMenuFlyoutItem::IsCheckedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToggleMenuFlyoutItemStatics const&), ToggleMenuFlyoutItem, IToggleMenuFlyoutItemStatics>([](IToggleMenuFlyoutItemStatics const& f) { return f.IsCheckedProperty(); });
    }
    inline ToggleSplitButton::ToggleSplitButton()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ToggleSplitButton, IToggleSplitButtonFactory>([&](IToggleSplitButtonFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline ToggleSplitButtonAutomationPeer::ToggleSplitButtonAutomationPeer(winrt::Windows::UI::Xaml::Controls::ToggleSplitButton const& owner)
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ToggleSplitButtonAutomationPeer, IToggleSplitButtonAutomationPeerFactory>([&](IToggleSplitButtonAutomationPeerFactory const& f) { return f.CreateInstance(owner, baseInterface, innerInterface); });
    }
    inline ToggleSwitch::ToggleSwitch() :
        ToggleSwitch(impl::call_factory_cast<ToggleSwitch(*)(winrt::Windows::Foundation::IActivationFactory const&), ToggleSwitch>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<ToggleSwitch>(); }))
    {
    }
    inline auto ToggleSwitch::IsOnProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToggleSwitchStatics const&), ToggleSwitch, IToggleSwitchStatics>([](IToggleSwitchStatics const& f) { return f.IsOnProperty(); });
    }
    inline auto ToggleSwitch::HeaderProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToggleSwitchStatics const&), ToggleSwitch, IToggleSwitchStatics>([](IToggleSwitchStatics const& f) { return f.HeaderProperty(); });
    }
    inline auto ToggleSwitch::HeaderTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToggleSwitchStatics const&), ToggleSwitch, IToggleSwitchStatics>([](IToggleSwitchStatics const& f) { return f.HeaderTemplateProperty(); });
    }
    inline auto ToggleSwitch::OnContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToggleSwitchStatics const&), ToggleSwitch, IToggleSwitchStatics>([](IToggleSwitchStatics const& f) { return f.OnContentProperty(); });
    }
    inline auto ToggleSwitch::OnContentTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToggleSwitchStatics const&), ToggleSwitch, IToggleSwitchStatics>([](IToggleSwitchStatics const& f) { return f.OnContentTemplateProperty(); });
    }
    inline auto ToggleSwitch::OffContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToggleSwitchStatics const&), ToggleSwitch, IToggleSwitchStatics>([](IToggleSwitchStatics const& f) { return f.OffContentProperty(); });
    }
    inline auto ToggleSwitch::OffContentTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToggleSwitchStatics const&), ToggleSwitch, IToggleSwitchStatics>([](IToggleSwitchStatics const& f) { return f.OffContentTemplateProperty(); });
    }
    inline ToolTip::ToolTip()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<ToolTip, IToolTipFactory>([&](IToolTipFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto ToolTip::HorizontalOffsetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToolTipStatics const&), ToolTip, IToolTipStatics>([](IToolTipStatics const& f) { return f.HorizontalOffsetProperty(); });
    }
    inline auto ToolTip::IsOpenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToolTipStatics const&), ToolTip, IToolTipStatics>([](IToolTipStatics const& f) { return f.IsOpenProperty(); });
    }
    inline auto ToolTip::PlacementProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToolTipStatics const&), ToolTip, IToolTipStatics>([](IToolTipStatics const& f) { return f.PlacementProperty(); });
    }
    inline auto ToolTip::PlacementTargetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToolTipStatics const&), ToolTip, IToolTipStatics>([](IToolTipStatics const& f) { return f.PlacementTargetProperty(); });
    }
    inline auto ToolTip::VerticalOffsetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToolTipStatics const&), ToolTip, IToolTipStatics>([](IToolTipStatics const& f) { return f.VerticalOffsetProperty(); });
    }
    inline auto ToolTip::PlacementRectProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToolTipStatics2 const&), ToolTip, IToolTipStatics2>([](IToolTipStatics2 const& f) { return f.PlacementRectProperty(); });
    }
    inline auto ToolTipService::PlacementProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToolTipServiceStatics const&), ToolTipService, IToolTipServiceStatics>([](IToolTipServiceStatics const& f) { return f.PlacementProperty(); });
    }
    inline auto ToolTipService::GetPlacement(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ToolTipService, IToolTipServiceStatics>([&](IToolTipServiceStatics const& f) { return f.GetPlacement(element); });
    }
    inline auto ToolTipService::SetPlacement(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::Primitives::PlacementMode const& value)
    {
        impl::call_factory<ToolTipService, IToolTipServiceStatics>([&](IToolTipServiceStatics const& f) { return f.SetPlacement(element, value); });
    }
    inline auto ToolTipService::PlacementTargetProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToolTipServiceStatics const&), ToolTipService, IToolTipServiceStatics>([](IToolTipServiceStatics const& f) { return f.PlacementTargetProperty(); });
    }
    inline auto ToolTipService::GetPlacementTarget(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ToolTipService, IToolTipServiceStatics>([&](IToolTipServiceStatics const& f) { return f.GetPlacementTarget(element); });
    }
    inline auto ToolTipService::SetPlacementTarget(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::UIElement const& value)
    {
        impl::call_factory<ToolTipService, IToolTipServiceStatics>([&](IToolTipServiceStatics const& f) { return f.SetPlacementTarget(element, value); });
    }
    inline auto ToolTipService::ToolTipProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IToolTipServiceStatics const&), ToolTipService, IToolTipServiceStatics>([](IToolTipServiceStatics const& f) { return f.ToolTipProperty(); });
    }
    inline auto ToolTipService::GetToolTip(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<ToolTipService, IToolTipServiceStatics>([&](IToolTipServiceStatics const& f) { return f.GetToolTip(element); });
    }
    inline auto ToolTipService::SetToolTip(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::Foundation::IInspectable const& value)
    {
        impl::call_factory<ToolTipService, IToolTipServiceStatics>([&](IToolTipServiceStatics const& f) { return f.SetToolTip(element, value); });
    }
    inline TreeView::TreeView()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TreeView, ITreeViewFactory>([&](ITreeViewFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TreeView::SelectionModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewStatics const&), TreeView, ITreeViewStatics>([](ITreeViewStatics const& f) { return f.SelectionModeProperty(); });
    }
    inline auto TreeView::CanDragItemsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewStatics2 const&), TreeView, ITreeViewStatics2>([](ITreeViewStatics2 const& f) { return f.CanDragItemsProperty(); });
    }
    inline auto TreeView::CanReorderItemsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewStatics2 const&), TreeView, ITreeViewStatics2>([](ITreeViewStatics2 const& f) { return f.CanReorderItemsProperty(); });
    }
    inline auto TreeView::ItemTemplateProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewStatics2 const&), TreeView, ITreeViewStatics2>([](ITreeViewStatics2 const& f) { return f.ItemTemplateProperty(); });
    }
    inline auto TreeView::ItemTemplateSelectorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewStatics2 const&), TreeView, ITreeViewStatics2>([](ITreeViewStatics2 const& f) { return f.ItemTemplateSelectorProperty(); });
    }
    inline auto TreeView::ItemContainerStyleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewStatics2 const&), TreeView, ITreeViewStatics2>([](ITreeViewStatics2 const& f) { return f.ItemContainerStyleProperty(); });
    }
    inline auto TreeView::ItemContainerStyleSelectorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewStatics2 const&), TreeView, ITreeViewStatics2>([](ITreeViewStatics2 const& f) { return f.ItemContainerStyleSelectorProperty(); });
    }
    inline auto TreeView::ItemContainerTransitionsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewStatics2 const&), TreeView, ITreeViewStatics2>([](ITreeViewStatics2 const& f) { return f.ItemContainerTransitionsProperty(); });
    }
    inline auto TreeView::ItemsSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewStatics2 const&), TreeView, ITreeViewStatics2>([](ITreeViewStatics2 const& f) { return f.ItemsSourceProperty(); });
    }
    inline TreeViewItem::TreeViewItem()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TreeViewItem, ITreeViewItemFactory>([&](ITreeViewItemFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TreeViewItem::GlyphOpacityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemStatics const&), TreeViewItem, ITreeViewItemStatics>([](ITreeViewItemStatics const& f) { return f.GlyphOpacityProperty(); });
    }
    inline auto TreeViewItem::GlyphBrushProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemStatics const&), TreeViewItem, ITreeViewItemStatics>([](ITreeViewItemStatics const& f) { return f.GlyphBrushProperty(); });
    }
    inline auto TreeViewItem::ExpandedGlyphProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemStatics const&), TreeViewItem, ITreeViewItemStatics>([](ITreeViewItemStatics const& f) { return f.ExpandedGlyphProperty(); });
    }
    inline auto TreeViewItem::CollapsedGlyphProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemStatics const&), TreeViewItem, ITreeViewItemStatics>([](ITreeViewItemStatics const& f) { return f.CollapsedGlyphProperty(); });
    }
    inline auto TreeViewItem::GlyphSizeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemStatics const&), TreeViewItem, ITreeViewItemStatics>([](ITreeViewItemStatics const& f) { return f.GlyphSizeProperty(); });
    }
    inline auto TreeViewItem::IsExpandedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemStatics const&), TreeViewItem, ITreeViewItemStatics>([](ITreeViewItemStatics const& f) { return f.IsExpandedProperty(); });
    }
    inline auto TreeViewItem::TreeViewItemTemplateSettingsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemStatics const&), TreeViewItem, ITreeViewItemStatics>([](ITreeViewItemStatics const& f) { return f.TreeViewItemTemplateSettingsProperty(); });
    }
    inline auto TreeViewItem::HasUnrealizedChildrenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemStatics2 const&), TreeViewItem, ITreeViewItemStatics2>([](ITreeViewItemStatics2 const& f) { return f.HasUnrealizedChildrenProperty(); });
    }
    inline auto TreeViewItem::ItemsSourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemStatics2 const&), TreeViewItem, ITreeViewItemStatics2>([](ITreeViewItemStatics2 const& f) { return f.ItemsSourceProperty(); });
    }
    inline TreeViewItemTemplateSettings::TreeViewItemTemplateSettings()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TreeViewItemTemplateSettings, ITreeViewItemTemplateSettingsFactory>([&](ITreeViewItemTemplateSettingsFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TreeViewItemTemplateSettings::ExpandedGlyphVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemTemplateSettingsStatics const&), TreeViewItemTemplateSettings, ITreeViewItemTemplateSettingsStatics>([](ITreeViewItemTemplateSettingsStatics const& f) { return f.ExpandedGlyphVisibilityProperty(); });
    }
    inline auto TreeViewItemTemplateSettings::CollapsedGlyphVisibilityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemTemplateSettingsStatics const&), TreeViewItemTemplateSettings, ITreeViewItemTemplateSettingsStatics>([](ITreeViewItemTemplateSettingsStatics const& f) { return f.CollapsedGlyphVisibilityProperty(); });
    }
    inline auto TreeViewItemTemplateSettings::IndentationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemTemplateSettingsStatics const&), TreeViewItemTemplateSettings, ITreeViewItemTemplateSettingsStatics>([](ITreeViewItemTemplateSettingsStatics const& f) { return f.IndentationProperty(); });
    }
    inline auto TreeViewItemTemplateSettings::DragItemsCountProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewItemTemplateSettingsStatics const&), TreeViewItemTemplateSettings, ITreeViewItemTemplateSettingsStatics>([](ITreeViewItemTemplateSettingsStatics const& f) { return f.DragItemsCountProperty(); });
    }
    inline TreeViewList::TreeViewList()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TreeViewList, ITreeViewListFactory>([&](ITreeViewListFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline TreeViewNode::TreeViewNode()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TreeViewNode, ITreeViewNodeFactory>([&](ITreeViewNodeFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TreeViewNode::ContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewNodeStatics const&), TreeViewNode, ITreeViewNodeStatics>([](ITreeViewNodeStatics const& f) { return f.ContentProperty(); });
    }
    inline auto TreeViewNode::DepthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewNodeStatics const&), TreeViewNode, ITreeViewNodeStatics>([](ITreeViewNodeStatics const& f) { return f.DepthProperty(); });
    }
    inline auto TreeViewNode::IsExpandedProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewNodeStatics const&), TreeViewNode, ITreeViewNodeStatics>([](ITreeViewNodeStatics const& f) { return f.IsExpandedProperty(); });
    }
    inline auto TreeViewNode::HasChildrenProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITreeViewNodeStatics const&), TreeViewNode, ITreeViewNodeStatics>([](ITreeViewNodeStatics const& f) { return f.HasChildrenProperty(); });
    }
    inline TwoPaneView::TwoPaneView()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<TwoPaneView, ITwoPaneViewFactory>([&](ITwoPaneViewFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto TwoPaneView::Pane1Property()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITwoPaneViewStatics const&), TwoPaneView, ITwoPaneViewStatics>([](ITwoPaneViewStatics const& f) { return f.Pane1Property(); });
    }
    inline auto TwoPaneView::Pane2Property()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITwoPaneViewStatics const&), TwoPaneView, ITwoPaneViewStatics>([](ITwoPaneViewStatics const& f) { return f.Pane2Property(); });
    }
    inline auto TwoPaneView::Pane1LengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITwoPaneViewStatics const&), TwoPaneView, ITwoPaneViewStatics>([](ITwoPaneViewStatics const& f) { return f.Pane1LengthProperty(); });
    }
    inline auto TwoPaneView::Pane2LengthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITwoPaneViewStatics const&), TwoPaneView, ITwoPaneViewStatics>([](ITwoPaneViewStatics const& f) { return f.Pane2LengthProperty(); });
    }
    inline auto TwoPaneView::PanePriorityProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITwoPaneViewStatics const&), TwoPaneView, ITwoPaneViewStatics>([](ITwoPaneViewStatics const& f) { return f.PanePriorityProperty(); });
    }
    inline auto TwoPaneView::ModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITwoPaneViewStatics const&), TwoPaneView, ITwoPaneViewStatics>([](ITwoPaneViewStatics const& f) { return f.ModeProperty(); });
    }
    inline auto TwoPaneView::WideModeConfigurationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITwoPaneViewStatics const&), TwoPaneView, ITwoPaneViewStatics>([](ITwoPaneViewStatics const& f) { return f.WideModeConfigurationProperty(); });
    }
    inline auto TwoPaneView::TallModeConfigurationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITwoPaneViewStatics const&), TwoPaneView, ITwoPaneViewStatics>([](ITwoPaneViewStatics const& f) { return f.TallModeConfigurationProperty(); });
    }
    inline auto TwoPaneView::MinWideModeWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITwoPaneViewStatics const&), TwoPaneView, ITwoPaneViewStatics>([](ITwoPaneViewStatics const& f) { return f.MinWideModeWidthProperty(); });
    }
    inline auto TwoPaneView::MinTallModeHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(ITwoPaneViewStatics const&), TwoPaneView, ITwoPaneViewStatics>([](ITwoPaneViewStatics const& f) { return f.MinTallModeHeightProperty(); });
    }
    inline UserControl::UserControl()
    {
        winrt::Windows::Foundation::IInspectable baseInterface, innerInterface;
        *this = impl::call_factory<UserControl, IUserControlFactory>([&](IUserControlFactory const& f) { return f.CreateInstance(baseInterface, innerInterface); });
    }
    inline auto UserControl::ContentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IUserControlStatics const&), UserControl, IUserControlStatics>([](IUserControlStatics const& f) { return f.ContentProperty(); });
    }
    inline VariableSizedWrapGrid::VariableSizedWrapGrid() :
        VariableSizedWrapGrid(impl::call_factory_cast<VariableSizedWrapGrid(*)(winrt::Windows::Foundation::IActivationFactory const&), VariableSizedWrapGrid>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<VariableSizedWrapGrid>(); }))
    {
    }
    inline auto VariableSizedWrapGrid::ItemHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVariableSizedWrapGridStatics const&), VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([](IVariableSizedWrapGridStatics const& f) { return f.ItemHeightProperty(); });
    }
    inline auto VariableSizedWrapGrid::ItemWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVariableSizedWrapGridStatics const&), VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([](IVariableSizedWrapGridStatics const& f) { return f.ItemWidthProperty(); });
    }
    inline auto VariableSizedWrapGrid::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVariableSizedWrapGridStatics const&), VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([](IVariableSizedWrapGridStatics const& f) { return f.OrientationProperty(); });
    }
    inline auto VariableSizedWrapGrid::HorizontalChildrenAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVariableSizedWrapGridStatics const&), VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([](IVariableSizedWrapGridStatics const& f) { return f.HorizontalChildrenAlignmentProperty(); });
    }
    inline auto VariableSizedWrapGrid::VerticalChildrenAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVariableSizedWrapGridStatics const&), VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([](IVariableSizedWrapGridStatics const& f) { return f.VerticalChildrenAlignmentProperty(); });
    }
    inline auto VariableSizedWrapGrid::MaximumRowsOrColumnsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVariableSizedWrapGridStatics const&), VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([](IVariableSizedWrapGridStatics const& f) { return f.MaximumRowsOrColumnsProperty(); });
    }
    inline auto VariableSizedWrapGrid::RowSpanProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVariableSizedWrapGridStatics const&), VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([](IVariableSizedWrapGridStatics const& f) { return f.RowSpanProperty(); });
    }
    inline auto VariableSizedWrapGrid::GetRowSpan(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([&](IVariableSizedWrapGridStatics const& f) { return f.GetRowSpan(element); });
    }
    inline auto VariableSizedWrapGrid::SetRowSpan(winrt::Windows::UI::Xaml::UIElement const& element, int32_t value)
    {
        impl::call_factory<VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([&](IVariableSizedWrapGridStatics const& f) { return f.SetRowSpan(element, value); });
    }
    inline auto VariableSizedWrapGrid::ColumnSpanProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVariableSizedWrapGridStatics const&), VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([](IVariableSizedWrapGridStatics const& f) { return f.ColumnSpanProperty(); });
    }
    inline auto VariableSizedWrapGrid::GetColumnSpan(winrt::Windows::UI::Xaml::UIElement const& element)
    {
        return impl::call_factory<VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([&](IVariableSizedWrapGridStatics const& f) { return f.GetColumnSpan(element); });
    }
    inline auto VariableSizedWrapGrid::SetColumnSpan(winrt::Windows::UI::Xaml::UIElement const& element, int32_t value)
    {
        impl::call_factory<VariableSizedWrapGrid, IVariableSizedWrapGridStatics>([&](IVariableSizedWrapGridStatics const& f) { return f.SetColumnSpan(element, value); });
    }
    inline Viewbox::Viewbox() :
        Viewbox(impl::call_factory_cast<Viewbox(*)(winrt::Windows::Foundation::IActivationFactory const&), Viewbox>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<Viewbox>(); }))
    {
    }
    inline auto Viewbox::StretchProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IViewboxStatics const&), Viewbox, IViewboxStatics>([](IViewboxStatics const& f) { return f.StretchProperty(); });
    }
    inline auto Viewbox::StretchDirectionProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IViewboxStatics const&), Viewbox, IViewboxStatics>([](IViewboxStatics const& f) { return f.StretchDirectionProperty(); });
    }
    inline VirtualizingStackPanel::VirtualizingStackPanel() :
        VirtualizingStackPanel(impl::call_factory_cast<VirtualizingStackPanel(*)(winrt::Windows::Foundation::IActivationFactory const&), VirtualizingStackPanel>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<VirtualizingStackPanel>(); }))
    {
    }
    inline auto VirtualizingStackPanel::AreScrollSnapPointsRegularProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVirtualizingStackPanelStatics const&), VirtualizingStackPanel, IVirtualizingStackPanelStatics>([](IVirtualizingStackPanelStatics const& f) { return f.AreScrollSnapPointsRegularProperty(); });
    }
    inline auto VirtualizingStackPanel::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVirtualizingStackPanelStatics const&), VirtualizingStackPanel, IVirtualizingStackPanelStatics>([](IVirtualizingStackPanelStatics const& f) { return f.OrientationProperty(); });
    }
    inline auto VirtualizingStackPanel::VirtualizationModeProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVirtualizingStackPanelStatics const&), VirtualizingStackPanel, IVirtualizingStackPanelStatics>([](IVirtualizingStackPanelStatics const& f) { return f.VirtualizationModeProperty(); });
    }
    inline auto VirtualizingStackPanel::GetVirtualizationMode(winrt::Windows::UI::Xaml::DependencyObject const& element)
    {
        return impl::call_factory<VirtualizingStackPanel, IVirtualizingStackPanelStatics>([&](IVirtualizingStackPanelStatics const& f) { return f.GetVirtualizationMode(element); });
    }
    inline auto VirtualizingStackPanel::SetVirtualizationMode(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::UI::Xaml::Controls::VirtualizationMode const& value)
    {
        impl::call_factory<VirtualizingStackPanel, IVirtualizingStackPanelStatics>([&](IVirtualizingStackPanelStatics const& f) { return f.SetVirtualizationMode(element, value); });
    }
    inline auto VirtualizingStackPanel::IsVirtualizingProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IVirtualizingStackPanelStatics const&), VirtualizingStackPanel, IVirtualizingStackPanelStatics>([](IVirtualizingStackPanelStatics const& f) { return f.IsVirtualizingProperty(); });
    }
    inline auto VirtualizingStackPanel::GetIsVirtualizing(winrt::Windows::UI::Xaml::DependencyObject const& o)
    {
        return impl::call_factory<VirtualizingStackPanel, IVirtualizingStackPanelStatics>([&](IVirtualizingStackPanelStatics const& f) { return f.GetIsVirtualizing(o); });
    }
    inline WebView::WebView() :
        WebView(impl::call_factory_cast<WebView(*)(winrt::Windows::Foundation::IActivationFactory const&), WebView>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<WebView>(); }))
    {
    }
    inline WebView::WebView(winrt::Windows::UI::Xaml::Controls::WebViewExecutionMode const& executionMode) :
        WebView(impl::call_factory<WebView, IWebViewFactory4>([&](IWebViewFactory4 const& f) { return f.CreateInstanceWithExecutionMode(executionMode); }))
    {
    }
    inline auto WebView::AnyScriptNotifyUri()
    {
        return impl::call_factory_cast<winrt::Windows::Foundation::Collections::IVector<winrt::Windows::Foundation::Uri>(*)(IWebViewStatics const&), WebView, IWebViewStatics>([](IWebViewStatics const& f) { return f.AnyScriptNotifyUri(); });
    }
    inline auto WebView::SourceProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics const&), WebView, IWebViewStatics>([](IWebViewStatics const& f) { return f.SourceProperty(); });
    }
    inline auto WebView::AllowedScriptNotifyUrisProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics const&), WebView, IWebViewStatics>([](IWebViewStatics const& f) { return f.AllowedScriptNotifyUrisProperty(); });
    }
    inline auto WebView::DataTransferPackageProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics const&), WebView, IWebViewStatics>([](IWebViewStatics const& f) { return f.DataTransferPackageProperty(); });
    }
    inline auto WebView::CanGoBackProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics2 const&), WebView, IWebViewStatics2>([](IWebViewStatics2 const& f) { return f.CanGoBackProperty(); });
    }
    inline auto WebView::CanGoForwardProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics2 const&), WebView, IWebViewStatics2>([](IWebViewStatics2 const& f) { return f.CanGoForwardProperty(); });
    }
    inline auto WebView::DocumentTitleProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics2 const&), WebView, IWebViewStatics2>([](IWebViewStatics2 const& f) { return f.DocumentTitleProperty(); });
    }
    inline auto WebView::DefaultBackgroundColorProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics2 const&), WebView, IWebViewStatics2>([](IWebViewStatics2 const& f) { return f.DefaultBackgroundColorProperty(); });
    }
    inline auto WebView::ContainsFullScreenElementProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics3 const&), WebView, IWebViewStatics3>([](IWebViewStatics3 const& f) { return f.ContainsFullScreenElementProperty(); });
    }
    inline auto WebView::DefaultExecutionMode()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::Controls::WebViewExecutionMode(*)(IWebViewStatics4 const&), WebView, IWebViewStatics4>([](IWebViewStatics4 const& f) { return f.DefaultExecutionMode(); });
    }
    inline auto WebView::ClearTemporaryWebDataAsync()
    {
        return impl::call_factory_cast<winrt::Windows::Foundation::IAsyncAction(*)(IWebViewStatics4 const&), WebView, IWebViewStatics4>([](IWebViewStatics4 const& f) { return f.ClearTemporaryWebDataAsync(); });
    }
    inline auto WebView::XYFocusLeftProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics5 const&), WebView, IWebViewStatics5>([](IWebViewStatics5 const& f) { return f.XYFocusLeftProperty(); });
    }
    inline auto WebView::XYFocusRightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics5 const&), WebView, IWebViewStatics5>([](IWebViewStatics5 const& f) { return f.XYFocusRightProperty(); });
    }
    inline auto WebView::XYFocusUpProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics5 const&), WebView, IWebViewStatics5>([](IWebViewStatics5 const& f) { return f.XYFocusUpProperty(); });
    }
    inline auto WebView::XYFocusDownProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewStatics5 const&), WebView, IWebViewStatics5>([](IWebViewStatics5 const& f) { return f.XYFocusDownProperty(); });
    }
    inline WebViewBrush::WebViewBrush() :
        WebViewBrush(impl::call_factory_cast<WebViewBrush(*)(winrt::Windows::Foundation::IActivationFactory const&), WebViewBrush>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<WebViewBrush>(); }))
    {
    }
    inline auto WebViewBrush::SourceNameProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWebViewBrushStatics const&), WebViewBrush, IWebViewBrushStatics>([](IWebViewBrushStatics const& f) { return f.SourceNameProperty(); });
    }
    inline WrapGrid::WrapGrid() :
        WrapGrid(impl::call_factory_cast<WrapGrid(*)(winrt::Windows::Foundation::IActivationFactory const&), WrapGrid>([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance<WrapGrid>(); }))
    {
    }
    inline auto WrapGrid::ItemWidthProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWrapGridStatics const&), WrapGrid, IWrapGridStatics>([](IWrapGridStatics const& f) { return f.ItemWidthProperty(); });
    }
    inline auto WrapGrid::ItemHeightProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWrapGridStatics const&), WrapGrid, IWrapGridStatics>([](IWrapGridStatics const& f) { return f.ItemHeightProperty(); });
    }
    inline auto WrapGrid::OrientationProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWrapGridStatics const&), WrapGrid, IWrapGridStatics>([](IWrapGridStatics const& f) { return f.OrientationProperty(); });
    }
    inline auto WrapGrid::HorizontalChildrenAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWrapGridStatics const&), WrapGrid, IWrapGridStatics>([](IWrapGridStatics const& f) { return f.HorizontalChildrenAlignmentProperty(); });
    }
    inline auto WrapGrid::VerticalChildrenAlignmentProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWrapGridStatics const&), WrapGrid, IWrapGridStatics>([](IWrapGridStatics const& f) { return f.VerticalChildrenAlignmentProperty(); });
    }
    inline auto WrapGrid::MaximumRowsOrColumnsProperty()
    {
        return impl::call_factory_cast<winrt::Windows::UI::Xaml::DependencyProperty(*)(IWrapGridStatics const&), WrapGrid, IWrapGridStatics>([](IWrapGridStatics const& f) { return f.MaximumRowsOrColumnsProperty(); });
    }
    template <typename L> BackClickEventHandler::BackClickEventHandler(L handler) :
        BackClickEventHandler(impl::make_delegate<BackClickEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> BackClickEventHandler::BackClickEventHandler(F* handler) :
        BackClickEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> BackClickEventHandler::BackClickEventHandler(O* object, M method) :
        BackClickEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> BackClickEventHandler::BackClickEventHandler(com_ptr<O>&& object, M method) :
        BackClickEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> BackClickEventHandler::BackClickEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        BackClickEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> BackClickEventHandler::BackClickEventHandler(std::shared_ptr<O>&& object, M method) :
        BackClickEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> BackClickEventHandler::BackClickEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        BackClickEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto BackClickEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::BackClickEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<BackClickEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(L handler) :
        CalendarViewDayItemChangingEventHandler(impl::make_delegate<CalendarViewDayItemChangingEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(F* handler) :
        CalendarViewDayItemChangingEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(O* object, M method) :
        CalendarViewDayItemChangingEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(com_ptr<O>&& object, M method) :
        CalendarViewDayItemChangingEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        CalendarViewDayItemChangingEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(std::shared_ptr<O>&& object, M method) :
        CalendarViewDayItemChangingEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> CalendarViewDayItemChangingEventHandler::CalendarViewDayItemChangingEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        CalendarViewDayItemChangingEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto CalendarViewDayItemChangingEventHandler::operator()(winrt::Windows::UI::Xaml::Controls::CalendarView const& sender, winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<CalendarViewDayItemChangingEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(L handler) :
        CleanUpVirtualizedItemEventHandler(impl::make_delegate<CleanUpVirtualizedItemEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(F* handler) :
        CleanUpVirtualizedItemEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(O* object, M method) :
        CleanUpVirtualizedItemEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(com_ptr<O>&& object, M method) :
        CleanUpVirtualizedItemEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        CleanUpVirtualizedItemEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(std::shared_ptr<O>&& object, M method) :
        CleanUpVirtualizedItemEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> CleanUpVirtualizedItemEventHandler::CleanUpVirtualizedItemEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        CleanUpVirtualizedItemEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto CleanUpVirtualizedItemEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<CleanUpVirtualizedItemEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(L handler) :
        ContextMenuOpeningEventHandler(impl::make_delegate<ContextMenuOpeningEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(F* handler) :
        ContextMenuOpeningEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(O* object, M method) :
        ContextMenuOpeningEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(com_ptr<O>&& object, M method) :
        ContextMenuOpeningEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        ContextMenuOpeningEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(std::shared_ptr<O>&& object, M method) :
        ContextMenuOpeningEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> ContextMenuOpeningEventHandler::ContextMenuOpeningEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        ContextMenuOpeningEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto ContextMenuOpeningEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::ContextMenuEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<ContextMenuOpeningEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> DragItemsStartingEventHandler::DragItemsStartingEventHandler(L handler) :
        DragItemsStartingEventHandler(impl::make_delegate<DragItemsStartingEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> DragItemsStartingEventHandler::DragItemsStartingEventHandler(F* handler) :
        DragItemsStartingEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> DragItemsStartingEventHandler::DragItemsStartingEventHandler(O* object, M method) :
        DragItemsStartingEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> DragItemsStartingEventHandler::DragItemsStartingEventHandler(com_ptr<O>&& object, M method) :
        DragItemsStartingEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> DragItemsStartingEventHandler::DragItemsStartingEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        DragItemsStartingEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> DragItemsStartingEventHandler::DragItemsStartingEventHandler(std::shared_ptr<O>&& object, M method) :
        DragItemsStartingEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> DragItemsStartingEventHandler::DragItemsStartingEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        DragItemsStartingEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto DragItemsStartingEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::DragItemsStartingEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<DragItemsStartingEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(L handler) :
        HubSectionHeaderClickEventHandler(impl::make_delegate<HubSectionHeaderClickEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(F* handler) :
        HubSectionHeaderClickEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(O* object, M method) :
        HubSectionHeaderClickEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(com_ptr<O>&& object, M method) :
        HubSectionHeaderClickEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        HubSectionHeaderClickEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(std::shared_ptr<O>&& object, M method) :
        HubSectionHeaderClickEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> HubSectionHeaderClickEventHandler::HubSectionHeaderClickEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        HubSectionHeaderClickEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto HubSectionHeaderClickEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::HubSectionHeaderClickEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<HubSectionHeaderClickEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> ItemClickEventHandler::ItemClickEventHandler(L handler) :
        ItemClickEventHandler(impl::make_delegate<ItemClickEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> ItemClickEventHandler::ItemClickEventHandler(F* handler) :
        ItemClickEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> ItemClickEventHandler::ItemClickEventHandler(O* object, M method) :
        ItemClickEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> ItemClickEventHandler::ItemClickEventHandler(com_ptr<O>&& object, M method) :
        ItemClickEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> ItemClickEventHandler::ItemClickEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        ItemClickEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> ItemClickEventHandler::ItemClickEventHandler(std::shared_ptr<O>&& object, M method) :
        ItemClickEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> ItemClickEventHandler::ItemClickEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        ItemClickEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto ItemClickEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::ItemClickEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<ItemClickEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> ListViewItemToKeyHandler::ListViewItemToKeyHandler(L handler) :
        ListViewItemToKeyHandler(impl::make_delegate<ListViewItemToKeyHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> ListViewItemToKeyHandler::ListViewItemToKeyHandler(F* handler) :
        ListViewItemToKeyHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> ListViewItemToKeyHandler::ListViewItemToKeyHandler(O* object, M method) :
        ListViewItemToKeyHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> ListViewItemToKeyHandler::ListViewItemToKeyHandler(com_ptr<O>&& object, M method) :
        ListViewItemToKeyHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> ListViewItemToKeyHandler::ListViewItemToKeyHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        ListViewItemToKeyHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> ListViewItemToKeyHandler::ListViewItemToKeyHandler(std::shared_ptr<O>&& object, M method) :
        ListViewItemToKeyHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> ListViewItemToKeyHandler::ListViewItemToKeyHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        ListViewItemToKeyHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto ListViewItemToKeyHandler::operator()(winrt::Windows::Foundation::IInspectable const& item) const
    {
        void* result{};
        check_hresult((*(impl::abi_t<ListViewItemToKeyHandler>**)this)->Invoke(*(void**)(&item), &result));
        return hstring{ result, take_ownership_from_abi };
    }
    template <typename L> ListViewKeyToItemHandler::ListViewKeyToItemHandler(L handler) :
        ListViewKeyToItemHandler(impl::make_delegate<ListViewKeyToItemHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> ListViewKeyToItemHandler::ListViewKeyToItemHandler(F* handler) :
        ListViewKeyToItemHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> ListViewKeyToItemHandler::ListViewKeyToItemHandler(O* object, M method) :
        ListViewKeyToItemHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> ListViewKeyToItemHandler::ListViewKeyToItemHandler(com_ptr<O>&& object, M method) :
        ListViewKeyToItemHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> ListViewKeyToItemHandler::ListViewKeyToItemHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        ListViewKeyToItemHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> ListViewKeyToItemHandler::ListViewKeyToItemHandler(std::shared_ptr<O>&& object, M method) :
        ListViewKeyToItemHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> ListViewKeyToItemHandler::ListViewKeyToItemHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        ListViewKeyToItemHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto ListViewKeyToItemHandler::operator()(param::hstring const& key) const
    {
        void* operation{};
        check_hresult((*(impl::abi_t<ListViewKeyToItemHandler>**)this)->Invoke(*(void**)(&key), &operation));
        return winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Foundation::IInspectable>{ operation, take_ownership_from_abi };
    }
    template <typename L> NotifyEventHandler::NotifyEventHandler(L handler) :
        NotifyEventHandler(impl::make_delegate<NotifyEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> NotifyEventHandler::NotifyEventHandler(F* handler) :
        NotifyEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> NotifyEventHandler::NotifyEventHandler(O* object, M method) :
        NotifyEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> NotifyEventHandler::NotifyEventHandler(com_ptr<O>&& object, M method) :
        NotifyEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> NotifyEventHandler::NotifyEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        NotifyEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> NotifyEventHandler::NotifyEventHandler(std::shared_ptr<O>&& object, M method) :
        NotifyEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> NotifyEventHandler::NotifyEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        NotifyEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto NotifyEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::NotifyEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<NotifyEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(L handler) :
        SectionsInViewChangedEventHandler(impl::make_delegate<SectionsInViewChangedEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(F* handler) :
        SectionsInViewChangedEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(O* object, M method) :
        SectionsInViewChangedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(com_ptr<O>&& object, M method) :
        SectionsInViewChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        SectionsInViewChangedEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(std::shared_ptr<O>&& object, M method) :
        SectionsInViewChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> SectionsInViewChangedEventHandler::SectionsInViewChangedEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        SectionsInViewChangedEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto SectionsInViewChangedEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::SectionsInViewChangedEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<SectionsInViewChangedEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> SelectionChangedEventHandler::SelectionChangedEventHandler(L handler) :
        SelectionChangedEventHandler(impl::make_delegate<SelectionChangedEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> SelectionChangedEventHandler::SelectionChangedEventHandler(F* handler) :
        SelectionChangedEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> SelectionChangedEventHandler::SelectionChangedEventHandler(O* object, M method) :
        SelectionChangedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> SelectionChangedEventHandler::SelectionChangedEventHandler(com_ptr<O>&& object, M method) :
        SelectionChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> SelectionChangedEventHandler::SelectionChangedEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        SelectionChangedEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> SelectionChangedEventHandler::SelectionChangedEventHandler(std::shared_ptr<O>&& object, M method) :
        SelectionChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> SelectionChangedEventHandler::SelectionChangedEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        SelectionChangedEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto SelectionChangedEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::SelectionChangedEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<SelectionChangedEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(L handler) :
        SemanticZoomViewChangedEventHandler(impl::make_delegate<SemanticZoomViewChangedEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(F* handler) :
        SemanticZoomViewChangedEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(O* object, M method) :
        SemanticZoomViewChangedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(com_ptr<O>&& object, M method) :
        SemanticZoomViewChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        SemanticZoomViewChangedEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(std::shared_ptr<O>&& object, M method) :
        SemanticZoomViewChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> SemanticZoomViewChangedEventHandler::SemanticZoomViewChangedEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        SemanticZoomViewChangedEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto SemanticZoomViewChangedEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<SemanticZoomViewChangedEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> TextChangedEventHandler::TextChangedEventHandler(L handler) :
        TextChangedEventHandler(impl::make_delegate<TextChangedEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> TextChangedEventHandler::TextChangedEventHandler(F* handler) :
        TextChangedEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> TextChangedEventHandler::TextChangedEventHandler(O* object, M method) :
        TextChangedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> TextChangedEventHandler::TextChangedEventHandler(com_ptr<O>&& object, M method) :
        TextChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> TextChangedEventHandler::TextChangedEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        TextChangedEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> TextChangedEventHandler::TextChangedEventHandler(std::shared_ptr<O>&& object, M method) :
        TextChangedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> TextChangedEventHandler::TextChangedEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        TextChangedEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto TextChangedEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::TextChangedEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<TextChangedEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> TextControlPasteEventHandler::TextControlPasteEventHandler(L handler) :
        TextControlPasteEventHandler(impl::make_delegate<TextControlPasteEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> TextControlPasteEventHandler::TextControlPasteEventHandler(F* handler) :
        TextControlPasteEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> TextControlPasteEventHandler::TextControlPasteEventHandler(O* object, M method) :
        TextControlPasteEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> TextControlPasteEventHandler::TextControlPasteEventHandler(com_ptr<O>&& object, M method) :
        TextControlPasteEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> TextControlPasteEventHandler::TextControlPasteEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        TextControlPasteEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> TextControlPasteEventHandler::TextControlPasteEventHandler(std::shared_ptr<O>&& object, M method) :
        TextControlPasteEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> TextControlPasteEventHandler::TextControlPasteEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        TextControlPasteEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto TextControlPasteEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::TextControlPasteEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<TextControlPasteEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename L> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(L handler) :
        WebViewNavigationFailedEventHandler(impl::make_delegate<WebViewNavigationFailedEventHandler>(std::forward<L>(handler)))
    {
    }
    template <typename F> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(F* handler) :
        WebViewNavigationFailedEventHandler([=](auto&&... args) { return handler(args...); })
    {
    }
    template <typename O, typename M> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(O* object, M method) :
        WebViewNavigationFailedEventHandler([=](auto&&... args) { return ((*object).*(method))(args...); })
    {
    }
    template <typename O, typename M> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(com_ptr<O>&& object, M method) :
        WebViewNavigationFailedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(weak_ref<O>&& object, LM&& lambda_or_method) :
        WebViewNavigationFailedEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.get()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    template <typename O, typename M> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(std::shared_ptr<O>&& object, M method) :
        WebViewNavigationFailedEventHandler([o = std::move(object), method](auto&&... args) { return ((*o).*(method))(args...); })
    {
    }
    template <typename O, typename LM> WebViewNavigationFailedEventHandler::WebViewNavigationFailedEventHandler(std::weak_ptr<O>&& object, LM&& lambda_or_method) :
        WebViewNavigationFailedEventHandler([o = std::move(object), lm = std::forward<LM>(lambda_or_method)](auto&&... args) { if (auto s = o.lock()) {
            if constexpr (std::is_member_function_pointer_v<LM>) ((*s).*(lm))(args...);
            else lm(args...);
        } })
    {
    }
    inline auto WebViewNavigationFailedEventHandler::operator()(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::WebViewNavigationFailedEventArgs const& e) const
    {
        check_hresult((*(impl::abi_t<WebViewNavigationFailedEventHandler>**)this)->Invoke(*(void**)(&sender), *(void**)(&e)));
    }
    template <typename D> auto IAppBarOverridesT<D>::OnClosed(winrt::Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IAppBarOverrides>().OnClosed(e);
    }
    template <typename D> auto IAppBarOverridesT<D>::OnOpened(winrt::Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IAppBarOverrides>().OnOpened(e);
    }
    template <typename D> auto IAppBarOverrides3T<D>::OnClosing(winrt::Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IAppBarOverrides3>().OnClosing(e);
    }
    template <typename D> auto IAppBarOverrides3T<D>::OnOpening(winrt::Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IAppBarOverrides3>().OnOpening(e);
    }
    template <typename D> auto IComboBoxOverridesT<D>::OnDropDownClosed(winrt::Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IComboBoxOverrides>().OnDropDownClosed(e);
    }
    template <typename D> auto IComboBoxOverridesT<D>::OnDropDownOpened(winrt::Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IComboBoxOverrides>().OnDropDownOpened(e);
    }
    template <typename D> auto IContentControlOverridesT<D>::OnContentChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent) const
    {
        return shim().template try_as<IContentControlOverrides>().OnContentChanged(oldContent, newContent);
    }
    template <typename D> auto IContentControlOverridesT<D>::OnContentTemplateChanged(winrt::Windows::UI::Xaml::DataTemplate const& oldContentTemplate, winrt::Windows::UI::Xaml::DataTemplate const& newContentTemplate) const
    {
        return shim().template try_as<IContentControlOverrides>().OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
    }
    template <typename D> auto IContentControlOverridesT<D>::OnContentTemplateSelectorChanged(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector) const
    {
        return shim().template try_as<IContentControlOverrides>().OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
    }
    template <typename D> auto IContentPresenterOverridesT<D>::OnContentTemplateChanged(winrt::Windows::UI::Xaml::DataTemplate const& oldContentTemplate, winrt::Windows::UI::Xaml::DataTemplate const& newContentTemplate) const
    {
        return shim().template try_as<IContentPresenterOverrides>().OnContentTemplateChanged(oldContentTemplate, newContentTemplate);
    }
    template <typename D> auto IContentPresenterOverridesT<D>::OnContentTemplateSelectorChanged(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& oldContentTemplateSelector, winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& newContentTemplateSelector) const
    {
        return shim().template try_as<IContentPresenterOverrides>().OnContentTemplateSelectorChanged(oldContentTemplateSelector, newContentTemplateSelector);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerEntered(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerEntered(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerPressed(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerPressed(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerMoved(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerMoved(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerReleased(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerReleased(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerExited(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerExited(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerCaptureLost(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerCaptureLost(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerCanceled(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerCanceled(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnPointerWheelChanged(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnPointerWheelChanged(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnTapped(winrt::Windows::UI::Xaml::Input::TappedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnTapped(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnDoubleTapped(winrt::Windows::UI::Xaml::Input::DoubleTappedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnDoubleTapped(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnHolding(winrt::Windows::UI::Xaml::Input::HoldingRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnHolding(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnRightTapped(winrt::Windows::UI::Xaml::Input::RightTappedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnRightTapped(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnManipulationStarting(winrt::Windows::UI::Xaml::Input::ManipulationStartingRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnManipulationStarting(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnManipulationInertiaStarting(winrt::Windows::UI::Xaml::Input::ManipulationInertiaStartingRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnManipulationInertiaStarting(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnManipulationStarted(winrt::Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnManipulationStarted(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnManipulationDelta(winrt::Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnManipulationDelta(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnManipulationCompleted(winrt::Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnManipulationCompleted(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnKeyUp(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnKeyUp(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnKeyDown(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnKeyDown(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnGotFocus(winrt::Windows::UI::Xaml::RoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnGotFocus(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnLostFocus(winrt::Windows::UI::Xaml::RoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnLostFocus(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnDragEnter(winrt::Windows::UI::Xaml::DragEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnDragEnter(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnDragLeave(winrt::Windows::UI::Xaml::DragEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnDragLeave(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnDragOver(winrt::Windows::UI::Xaml::DragEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnDragOver(e);
    }
    template <typename D> auto IControlOverridesT<D>::OnDrop(winrt::Windows::UI::Xaml::DragEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides>().OnDrop(e);
    }
    template <typename D> auto IControlOverrides6T<D>::OnPreviewKeyDown(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides6>().OnPreviewKeyDown(e);
    }
    template <typename D> auto IControlOverrides6T<D>::OnPreviewKeyUp(winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides6>().OnPreviewKeyUp(e);
    }
    template <typename D> auto IControlOverrides6T<D>::OnCharacterReceived(winrt::Windows::UI::Xaml::Input::CharacterReceivedRoutedEventArgs const& e) const
    {
        return shim().template try_as<IControlOverrides6>().OnCharacterReceived(e);
    }
    template <typename D> auto IDataTemplateSelectorOverridesT<D>::SelectTemplateCore(winrt::Windows::Foundation::IInspectable const& item, winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        return shim().template try_as<IDataTemplateSelectorOverrides>().SelectTemplateCore(item, container);
    }
    template <typename D> auto IDataTemplateSelectorOverrides2T<D>::SelectTemplateCore(winrt::Windows::Foundation::IInspectable const& item) const
    {
        return shim().template try_as<IDataTemplateSelectorOverrides2>().SelectTemplateCore(item);
    }
    template <typename D> auto IGroupStyleSelectorOverridesT<D>::SelectGroupStyleCore(winrt::Windows::Foundation::IInspectable const& group, uint32_t level) const
    {
        return shim().template try_as<IGroupStyleSelectorOverrides>().SelectGroupStyleCore(group, level);
    }
    template <typename D> auto IInkToolbarCustomPenOverridesT<D>::CreateInkDrawingAttributesCore(winrt::Windows::UI::Xaml::Media::Brush const& brush, double strokeWidth) const
    {
        return shim().template try_as<IInkToolbarCustomPenOverrides>().CreateInkDrawingAttributesCore(brush, strokeWidth);
    }
    template <typename D> auto IItemsControlOverridesT<D>::IsItemItsOwnContainerOverride(winrt::Windows::Foundation::IInspectable const& item) const
    {
        return shim().template try_as<IItemsControlOverrides>().IsItemItsOwnContainerOverride(item);
    }
    template <typename D> auto IItemsControlOverridesT<D>::GetContainerForItemOverride() const
    {
        return shim().template try_as<IItemsControlOverrides>().GetContainerForItemOverride();
    }
    template <typename D> auto IItemsControlOverridesT<D>::ClearContainerForItemOverride(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::Foundation::IInspectable const& item) const
    {
        return shim().template try_as<IItemsControlOverrides>().ClearContainerForItemOverride(element, item);
    }
    template <typename D> auto IItemsControlOverridesT<D>::PrepareContainerForItemOverride(winrt::Windows::UI::Xaml::DependencyObject const& element, winrt::Windows::Foundation::IInspectable const& item) const
    {
        return shim().template try_as<IItemsControlOverrides>().PrepareContainerForItemOverride(element, item);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnItemsChanged(winrt::Windows::Foundation::IInspectable const& e) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnItemsChanged(e);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnItemContainerStyleChanged(winrt::Windows::UI::Xaml::Style const& oldItemContainerStyle, winrt::Windows::UI::Xaml::Style const& newItemContainerStyle) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnItemContainerStyleChanged(oldItemContainerStyle, newItemContainerStyle);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnItemContainerStyleSelectorChanged(winrt::Windows::UI::Xaml::Controls::StyleSelector const& oldItemContainerStyleSelector, winrt::Windows::UI::Xaml::Controls::StyleSelector const& newItemContainerStyleSelector) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnItemContainerStyleSelectorChanged(oldItemContainerStyleSelector, newItemContainerStyleSelector);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnItemTemplateChanged(winrt::Windows::UI::Xaml::DataTemplate const& oldItemTemplate, winrt::Windows::UI::Xaml::DataTemplate const& newItemTemplate) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnItemTemplateChanged(oldItemTemplate, newItemTemplate);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnItemTemplateSelectorChanged(winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& oldItemTemplateSelector, winrt::Windows::UI::Xaml::Controls::DataTemplateSelector const& newItemTemplateSelector) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnItemTemplateSelectorChanged(oldItemTemplateSelector, newItemTemplateSelector);
    }
    template <typename D> auto IItemsControlOverridesT<D>::OnGroupStyleSelectorChanged(winrt::Windows::UI::Xaml::Controls::GroupStyleSelector const& oldGroupStyleSelector, winrt::Windows::UI::Xaml::Controls::GroupStyleSelector const& newGroupStyleSelector) const
    {
        return shim().template try_as<IItemsControlOverrides>().OnGroupStyleSelectorChanged(oldGroupStyleSelector, newGroupStyleSelector);
    }
    template <typename D> auto IPageOverridesT<D>::OnNavigatedFrom(winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
    {
        return shim().template try_as<IPageOverrides>().OnNavigatedFrom(e);
    }
    template <typename D> auto IPageOverridesT<D>::OnNavigatedTo(winrt::Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) const
    {
        return shim().template try_as<IPageOverrides>().OnNavigatedTo(e);
    }
    template <typename D> auto IPageOverridesT<D>::OnNavigatingFrom(winrt::Windows::UI::Xaml::Navigation::NavigatingCancelEventArgs const& e) const
    {
        return shim().template try_as<IPageOverrides>().OnNavigatingFrom(e);
    }
    template <typename D> auto IStyleSelectorOverridesT<D>::SelectStyleCore(winrt::Windows::Foundation::IInspectable const& item, winrt::Windows::UI::Xaml::DependencyObject const& container) const
    {
        return shim().template try_as<IStyleSelectorOverrides>().SelectStyleCore(item, container);
    }
    template <typename D> auto IToggleSwitchOverridesT<D>::OnToggled() const
    {
        return shim().template try_as<IToggleSwitchOverrides>().OnToggled();
    }
    template <typename D> auto IToggleSwitchOverridesT<D>::OnOnContentChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent) const
    {
        return shim().template try_as<IToggleSwitchOverrides>().OnOnContentChanged(oldContent, newContent);
    }
    template <typename D> auto IToggleSwitchOverridesT<D>::OnOffContentChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent) const
    {
        return shim().template try_as<IToggleSwitchOverrides>().OnOffContentChanged(oldContent, newContent);
    }
    template <typename D> auto IToggleSwitchOverridesT<D>::OnHeaderChanged(winrt::Windows::Foundation::IInspectable const& oldContent, winrt::Windows::Foundation::IInspectable const& newContent) const
    {
        return shim().template try_as<IToggleSwitchOverrides>().OnHeaderChanged(oldContent, newContent);
    }
    template <typename D> auto IVirtualizingPanelOverridesT<D>::OnItemsChanged(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::Primitives::ItemsChangedEventArgs const& args) const
    {
        return shim().template try_as<IVirtualizingPanelOverrides>().OnItemsChanged(sender, args);
    }
    template <typename D> auto IVirtualizingPanelOverridesT<D>::OnClearChildren() const
    {
        return shim().template try_as<IVirtualizingPanelOverrides>().OnClearChildren();
    }
    template <typename D> auto IVirtualizingPanelOverridesT<D>::BringIndexIntoView(int32_t index) const
    {
        return shim().template try_as<IVirtualizingPanelOverrides>().BringIndexIntoView(index);
    }
    template <typename D> auto IVirtualizingStackPanelOverridesT<D>::OnCleanUpVirtualizedItem(winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs const& e) const
    {
        return shim().template try_as<IVirtualizingStackPanelOverrides>().OnCleanUpVirtualizedItem(e);
    }
    template <typename D, typename... Interfaces>
    struct AppBarT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IAppBar, winrt::Windows::UI::Xaml::Controls::IAppBar2, winrt::Windows::UI::Xaml::Controls::IAppBar3, winrt::Windows::UI::Xaml::Controls::IAppBar4, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, AppBar, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IAppBarOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3T<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = AppBar;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        AppBarT()
        {
            impl::call_factory<AppBar, IAppBarFactory>([&](IAppBarFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct AppBarButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IAppBarButton, winrt::Windows::UI::Xaml::Controls::IAppBarButton3, winrt::Windows::UI::Xaml::Controls::IAppBarButton4, winrt::Windows::UI::Xaml::Controls::IAppBarButton5, winrt::Windows::UI::Xaml::Controls::ICommandBarElement, winrt::Windows::UI::Xaml::Controls::ICommandBarElement2, winrt::Windows::UI::Xaml::Controls::IButton, winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, AppBarButton, winrt::Windows::UI::Xaml::Controls::Button, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = AppBarButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        AppBarButtonT()
        {
            impl::call_factory<AppBarButton, IAppBarButtonFactory>([&](IAppBarButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct AppBarElementContainerT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IAppBarElementContainer, winrt::Windows::UI::Xaml::Controls::ICommandBarElement, winrt::Windows::UI::Xaml::Controls::ICommandBarElement2, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, AppBarElementContainer, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = AppBarElementContainer;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        AppBarElementContainerT()
        {
            impl::call_factory<AppBarElementContainer, IAppBarElementContainerFactory>([&](IAppBarElementContainerFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct AppBarSeparatorT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IAppBarSeparator, winrt::Windows::UI::Xaml::Controls::ICommandBarElement, winrt::Windows::UI::Xaml::Controls::ICommandBarElement2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, AppBarSeparator, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = AppBarSeparator;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        AppBarSeparatorT()
        {
            impl::call_factory<AppBarSeparator, IAppBarSeparatorFactory>([&](IAppBarSeparatorFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct AppBarToggleButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4, winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton5, winrt::Windows::UI::Xaml::Controls::ICommandBarElement, winrt::Windows::UI::Xaml::Controls::ICommandBarElement2, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, AppBarToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = AppBarToggleButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        AppBarToggleButtonT()
        {
            impl::call_factory<AppBarToggleButton, IAppBarToggleButtonFactory>([&](IAppBarToggleButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct BitmapIconT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IBitmapIcon, winrt::Windows::UI::Xaml::Controls::IBitmapIcon2, winrt::Windows::UI::Xaml::Controls::IIconElement, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, BitmapIcon, winrt::Windows::UI::Xaml::Controls::IconElement, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = BitmapIcon;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        BitmapIconT()
        {
            impl::call_factory<BitmapIcon, IBitmapIconFactory>([&](IBitmapIconFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct BitmapIconSourceT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IBitmapIconSource, winrt::Windows::UI::Xaml::Controls::IIconSource, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, BitmapIconSource, winrt::Windows::UI::Xaml::Controls::IconSource, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = BitmapIconSource;
    protected:
        BitmapIconSourceT()
        {
            impl::call_factory<BitmapIconSource, IBitmapIconSourceFactory>([&](IBitmapIconSourceFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IButton, winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, Button, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Button;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ButtonT()
        {
            impl::call_factory<Button, IButtonFactory>([&](IButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CalendarDatePickerT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2, winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, CalendarDatePicker, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CalendarDatePicker;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        CalendarDatePickerT()
        {
            impl::call_factory<CalendarDatePicker, ICalendarDatePickerFactory>([&](ICalendarDatePickerFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CalendarViewT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ICalendarView, winrt::Windows::UI::Xaml::Controls::ICalendarView2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, CalendarView, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CalendarView;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        CalendarViewT()
        {
            impl::call_factory<CalendarView, ICalendarViewFactory>([&](ICalendarViewFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CalendarViewDayItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, CalendarViewDayItem, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CalendarViewDayItem;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        CalendarViewDayItemT()
        {
            impl::call_factory<CalendarViewDayItem, ICalendarViewDayItemFactory>([&](ICalendarViewDayItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CanvasT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ICanvas, winrt::Windows::UI::Xaml::Controls::IPanel, winrt::Windows::UI::Xaml::Controls::IPanel2, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, Canvas, winrt::Windows::UI::Xaml::Controls::Panel, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Canvas;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        CanvasT()
        {
            impl::call_factory<Canvas, ICanvasFactory>([&](ICanvasFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CheckBoxT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ICheckBox, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, CheckBox, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CheckBox;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        CheckBoxT()
        {
            impl::call_factory<CheckBox, ICheckBoxFactory>([&](ICheckBoxFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ColorPickerT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IColorPicker, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ColorPicker, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ColorPicker;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ColorPickerT()
        {
            impl::call_factory<ColorPicker, IColorPickerFactory>([&](IColorPickerFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ComboBoxT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IComboBox, winrt::Windows::UI::Xaml::Controls::IComboBox2, winrt::Windows::UI::Xaml::Controls::IComboBox3, winrt::Windows::UI::Xaml::Controls::IComboBox4, winrt::Windows::UI::Xaml::Controls::IComboBox5, winrt::Windows::UI::Xaml::Controls::IComboBox6, winrt::Windows::UI::Xaml::Controls::Primitives::ISelector, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ComboBox, winrt::Windows::UI::Xaml::Controls::Primitives::Selector, winrt::Windows::UI::Xaml::Controls::ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IComboBoxOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ComboBox;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ComboBoxT()
        {
            impl::call_factory<ComboBox, IComboBoxFactory>([&](IComboBoxFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IComboBox>::IsEditable;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IComboBox6>::IsEditable;
    };
    template <typename D, typename... Interfaces>
    struct ComboBoxItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IComboBoxItem, winrt::Windows::UI::Xaml::Controls::Primitives::ISelectorItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ComboBoxItem, winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ComboBoxItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ComboBoxItemT()
        {
            impl::call_factory<ComboBoxItem, IComboBoxItemFactory>([&](IComboBoxItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CommandBarT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ICommandBar, winrt::Windows::UI::Xaml::Controls::ICommandBar2, winrt::Windows::UI::Xaml::Controls::ICommandBar3, winrt::Windows::UI::Xaml::Controls::IAppBar, winrt::Windows::UI::Xaml::Controls::IAppBar2, winrt::Windows::UI::Xaml::Controls::IAppBar3, winrt::Windows::UI::Xaml::Controls::IAppBar4, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, CommandBar, winrt::Windows::UI::Xaml::Controls::AppBar, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IAppBarOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3T<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CommandBar;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        CommandBarT()
        {
            impl::call_factory<CommandBar, ICommandBarFactory>([&](ICommandBarFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct CommandBarFlyoutT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase2, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase3, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase4, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase6, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, CommandBarFlyout, winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
    {
        using composable = CommandBarFlyout;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4>;
    protected:
        CommandBarFlyoutT()
        {
            impl::call_factory<CommandBarFlyout, ICommandBarFlyoutFactory>([&](ICommandBarFlyoutFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase>::ShowAt;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5>::ShowAt;
    };
    template <typename D, typename... Interfaces>
    struct CommandBarOverflowPresenterT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenter, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, CommandBarOverflowPresenter, winrt::Windows::UI::Xaml::Controls::ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = CommandBarOverflowPresenter;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        CommandBarOverflowPresenterT()
        {
            impl::call_factory<CommandBarOverflowPresenter, ICommandBarOverflowPresenterFactory>([&](ICommandBarOverflowPresenterFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ContentControlT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ContentControl;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ContentControlT()
        {
            impl::call_factory<ContentControl, IContentControlFactory>([&](IContentControlFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ContentDialogT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IContentDialog, winrt::Windows::UI::Xaml::Controls::IContentDialog2, winrt::Windows::UI::Xaml::Controls::IContentDialog3, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ContentDialog, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ContentDialog;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ContentDialogT()
        {
            impl::call_factory<ContentDialog, IContentDialogFactory>([&](IContentDialogFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IContentDialog>::ShowAsync;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IContentDialog3>::ShowAsync;
    };
    template <typename D, typename... Interfaces>
    struct ContentPresenterT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IContentPresenter, winrt::Windows::UI::Xaml::Controls::IContentPresenter2, winrt::Windows::UI::Xaml::Controls::IContentPresenter3, winrt::Windows::UI::Xaml::Controls::IContentPresenter4, winrt::Windows::UI::Xaml::Controls::IContentPresenter5, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ContentPresenter, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentPresenterOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ContentPresenter;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ContentPresenterT()
        {
            impl::call_factory<ContentPresenter, IContentPresenterFactory>([&](IContentPresenterFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ControlT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Control;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ControlT()
        {
            impl::call_factory<Control, IControlFactory>([&](IControlFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct DataTemplateSelectorT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector2, winrt::Windows::UI::Xaml::IElementFactory>,
        impl::base<D, DataTemplateSelector>,
        winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2T<D>
    {
        using composable = DataTemplateSelector;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2>;
    protected:
        DataTemplateSelectorT()
        {
            impl::call_factory<DataTemplateSelector, IDataTemplateSelectorFactory>([&](IDataTemplateSelectorFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector>::SelectTemplate;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector2>::SelectTemplate;
        using winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverridesT<D>::SelectTemplateCore;
        using winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2T<D>::SelectTemplateCore;
    };
    template <typename D, typename... Interfaces>
    struct DatePickerT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IDatePicker, winrt::Windows::UI::Xaml::Controls::IDatePicker2, winrt::Windows::UI::Xaml::Controls::IDatePicker3, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, DatePicker, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = DatePicker;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        DatePickerT()
        {
            impl::call_factory<DatePicker, IDatePickerFactory>([&](IDatePickerFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct DropDownButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IDropDownButton, winrt::Windows::UI::Xaml::Controls::IButton, winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, DropDownButton, winrt::Windows::UI::Xaml::Controls::Button, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = DropDownButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        DropDownButtonT()
        {
            impl::call_factory<DropDownButton, IDropDownButtonFactory>([&](IDropDownButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct DropDownButtonAutomationPeerT :
        implements<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeer, winrt::Windows::UI::Xaml::Automation::Provider::IExpandCollapseProvider, winrt::Windows::UI::Xaml::Automation::Peers::IButtonAutomationPeer, winrt::Windows::UI::Xaml::Automation::Provider::IInvokeProvider, winrt::Windows::UI::Xaml::Automation::Peers::IButtonBaseAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::IFrameworkElementAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer2, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer3, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer4, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer5, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer6, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer7, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer8, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer9, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected>,
        impl::base<D, DropDownButtonAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::ButtonAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::ButtonBaseAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::FrameworkElementAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::AutomationPeer, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverridesT<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9T<D>
    {
        using composable = DropDownButtonAutomationPeer;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9>;
    protected:
        DropDownButtonAutomationPeerT(winrt::Windows::UI::Xaml::Controls::DropDownButton const& owner)
        {
            impl::call_factory<DropDownButtonAutomationPeer, IDropDownButtonAutomationPeerFactory>([&](IDropDownButtonAutomationPeerFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(owner, *this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FlipViewT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IFlipView, winrt::Windows::UI::Xaml::Controls::IFlipView2, winrt::Windows::UI::Xaml::Controls::Primitives::ISelector, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, FlipView, winrt::Windows::UI::Xaml::Controls::Primitives::Selector, winrt::Windows::UI::Xaml::Controls::ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = FlipView;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        FlipViewT()
        {
            impl::call_factory<FlipView, IFlipViewFactory>([&](IFlipViewFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FlipViewItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IFlipViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::ISelectorItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, FlipViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = FlipViewItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        FlipViewItemT()
        {
            impl::call_factory<FlipViewItem, IFlipViewItemFactory>([&](IFlipViewItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FlyoutT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IFlyout, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase2, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase3, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase4, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase6, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, Flyout, winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
    {
        using composable = Flyout;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4>;
    protected:
        FlyoutT()
        {
            impl::call_factory<Flyout, IFlyoutFactory>([&](IFlyoutFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase>::ShowAt;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5>::ShowAt;
    };
    template <typename D, typename... Interfaces>
    struct FlyoutPresenterT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter, winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, FlyoutPresenter, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = FlyoutPresenter;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        FlyoutPresenterT()
        {
            impl::call_factory<FlyoutPresenter, IFlyoutPresenterFactory>([&](IFlyoutPresenterFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FontIconT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IFontIcon, winrt::Windows::UI::Xaml::Controls::IFontIcon2, winrt::Windows::UI::Xaml::Controls::IFontIcon3, winrt::Windows::UI::Xaml::Controls::IIconElement, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, FontIcon, winrt::Windows::UI::Xaml::Controls::IconElement, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = FontIcon;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        FontIconT()
        {
            impl::call_factory<FontIcon, IFontIconFactory>([&](IFontIconFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FontIconSourceT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IFontIconSource, winrt::Windows::UI::Xaml::Controls::IIconSource, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, FontIconSource, winrt::Windows::UI::Xaml::Controls::IconSource, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = FontIconSource;
    protected:
        FontIconSourceT()
        {
            impl::call_factory<FontIconSource, IFontIconSourceFactory>([&](IFontIconSourceFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct FrameT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IFrame, winrt::Windows::UI::Xaml::Controls::IFrame2, winrt::Windows::UI::Xaml::Controls::IFrame3, winrt::Windows::UI::Xaml::Controls::IFrame4, winrt::Windows::UI::Xaml::Controls::IFrame5, winrt::Windows::UI::Xaml::Controls::INavigate, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, Frame, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Frame;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        FrameT()
        {
            impl::call_factory<Frame, IFrameFactory>([&](IFrameFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IFrame>::GoBack;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IFrame3>::GoBack;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IFrame>::Navigate;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IFrame2>::Navigate;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::INavigate>::Navigate;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IFrame>::SetNavigationState;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IFrame4>::SetNavigationState;
    };
    template <typename D, typename... Interfaces>
    struct GridT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IGrid, winrt::Windows::UI::Xaml::Controls::IGrid2, winrt::Windows::UI::Xaml::Controls::IGrid3, winrt::Windows::UI::Xaml::Controls::IGrid4, winrt::Windows::UI::Xaml::Controls::IPanel, winrt::Windows::UI::Xaml::Controls::IPanel2, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, Grid, winrt::Windows::UI::Xaml::Controls::Panel, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Grid;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        GridT()
        {
            impl::call_factory<Grid, IGridFactory>([&](IGridFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GridViewT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IGridView, winrt::Windows::UI::Xaml::Controls::IListViewBase, winrt::Windows::UI::Xaml::Controls::IListViewBase2, winrt::Windows::UI::Xaml::Controls::IListViewBase3, winrt::Windows::UI::Xaml::Controls::IListViewBase4, winrt::Windows::UI::Xaml::Controls::IListViewBase5, winrt::Windows::UI::Xaml::Controls::IListViewBase6, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, winrt::Windows::UI::Xaml::Controls::Primitives::ISelector, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, GridView, winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::Primitives::Selector, winrt::Windows::UI::Xaml::Controls::ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = GridView;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        GridViewT()
        {
            impl::call_factory<GridView, IGridViewFactory>([&](IGridViewFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GridViewHeaderItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItem, winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, GridViewHeaderItem, winrt::Windows::UI::Xaml::Controls::ListViewBaseHeaderItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = GridViewHeaderItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        GridViewHeaderItemT()
        {
            impl::call_factory<GridViewHeaderItem, IGridViewHeaderItemFactory>([&](IGridViewHeaderItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GridViewItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IGridViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::ISelectorItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, GridViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = GridViewItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        GridViewItemT()
        {
            impl::call_factory<GridViewItem, IGridViewItemFactory>([&](IGridViewItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GroupItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IGroupItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, GroupItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = GroupItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        GroupItemT()
        {
            impl::call_factory<GroupItem, IGroupItemFactory>([&](IGroupItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GroupStyleT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IGroupStyle, winrt::Windows::UI::Xaml::Controls::IGroupStyle2, winrt::Windows::UI::Xaml::Data::INotifyPropertyChanged>,
        impl::base<D, GroupStyle>
    {
        using composable = GroupStyle;
    protected:
        GroupStyleT()
        {
            impl::call_factory<GroupStyle, IGroupStyleFactory>([&](IGroupStyleFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct GroupStyleSelectorT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelector>,
        impl::base<D, GroupStyleSelector>,
        winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverridesT<D>
    {
        using composable = GroupStyleSelector;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides>;
    protected:
        GroupStyleSelectorT()
        {
            impl::call_factory<GroupStyleSelector, IGroupStyleSelectorFactory>([&](IGroupStyleSelectorFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct HandwritingViewT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IHandwritingView, winrt::Windows::UI::Xaml::Controls::IHandwritingView2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, HandwritingView, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = HandwritingView;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        HandwritingViewT()
        {
            impl::call_factory<HandwritingView, IHandwritingViewFactory>([&](IHandwritingViewFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct HubT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IHub, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, Hub, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Hub;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        HubT()
        {
            impl::call_factory<Hub, IHubFactory>([&](IHubFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct HubSectionT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IHubSection, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, HubSection, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = HubSection;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        HubSectionT()
        {
            impl::call_factory<HubSection, IHubSectionFactory>([&](IHubSectionFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct HyperlinkButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IHyperlinkButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, HyperlinkButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = HyperlinkButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        HyperlinkButtonT()
        {
            impl::call_factory<HyperlinkButton, IHyperlinkButtonFactory>([&](IHyperlinkButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct IconSourceElementT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IIconSourceElement, winrt::Windows::UI::Xaml::Controls::IIconElement, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, IconSourceElement, winrt::Windows::UI::Xaml::Controls::IconElement, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = IconSourceElement;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        IconSourceElementT()
        {
            impl::call_factory<IconSourceElement, IIconSourceElementFactory>([&](IIconSourceElementFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkCanvasT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkCanvas, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkCanvas, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkCanvas;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkCanvasT()
        {
            impl::call_factory<InkCanvas, IInkCanvasFactory>([&](IInkCanvasFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbar, winrt::Windows::UI::Xaml::Controls::IInkToolbar2, winrt::Windows::UI::Xaml::Controls::IInkToolbar3, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbar, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbar;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarT()
        {
            impl::call_factory<InkToolbar, IInkToolbarFactory>([&](IInkToolbarFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarBallpointPenButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::IRadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbarBallpointPenButton, winrt::Windows::UI::Xaml::Controls::InkToolbarPenButton, winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::RadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarBallpointPenButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarBallpointPenButtonT()
        {
            impl::call_factory<InkToolbarBallpointPenButton, IInkToolbarBallpointPenButtonFactory>([&](IInkToolbarBallpointPenButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarCustomPenT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPen, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, InkToolbarCustomPen, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverridesT<D>
    {
        using composable = InkToolbarCustomPen;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides>;
    protected:
        InkToolbarCustomPenT()
        {
            impl::call_factory<InkToolbarCustomPen, IInkToolbarCustomPenFactory>([&](IInkToolbarCustomPenFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarCustomPenButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::IRadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbarCustomPenButton, winrt::Windows::UI::Xaml::Controls::InkToolbarPenButton, winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::RadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarCustomPenButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarCustomPenButtonT()
        {
            impl::call_factory<InkToolbarCustomPenButton, IInkToolbarCustomPenButtonFactory>([&](IInkToolbarCustomPenButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarCustomToggleButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButton, winrt::Windows::UI::Xaml::Controls::ICheckBox, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbarCustomToggleButton, winrt::Windows::UI::Xaml::Controls::InkToolbarToggleButton, winrt::Windows::UI::Xaml::Controls::CheckBox, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarCustomToggleButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarCustomToggleButtonT()
        {
            impl::call_factory<InkToolbarCustomToggleButton, IInkToolbarCustomToggleButtonFactory>([&](IInkToolbarCustomToggleButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarCustomToolButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::IRadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbarCustomToolButton, winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::RadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarCustomToolButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarCustomToolButtonT()
        {
            impl::call_factory<InkToolbarCustomToolButton, IInkToolbarCustomToolButtonFactory>([&](IInkToolbarCustomToolButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarEraserButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::IRadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbarEraserButton, winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::RadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarEraserButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarEraserButtonT()
        {
            impl::call_factory<InkToolbarEraserButton, IInkToolbarEraserButtonFactory>([&](IInkToolbarEraserButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarFlyoutItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbarFlyoutItem, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarFlyoutItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarFlyoutItemT()
        {
            impl::call_factory<InkToolbarFlyoutItem, IInkToolbarFlyoutItemFactory>([&](IInkToolbarFlyoutItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarHighlighterButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::IRadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbarHighlighterButton, winrt::Windows::UI::Xaml::Controls::InkToolbarPenButton, winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::RadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarHighlighterButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarHighlighterButtonT()
        {
            impl::call_factory<InkToolbarHighlighterButton, IInkToolbarHighlighterButtonFactory>([&](IInkToolbarHighlighterButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarPenConfigurationControlT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbarPenConfigurationControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarPenConfigurationControl;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarPenConfigurationControlT()
        {
            impl::call_factory<InkToolbarPenConfigurationControl, IInkToolbarPenConfigurationControlFactory>([&](IInkToolbarPenConfigurationControlFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarPencilButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::IRadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbarPencilButton, winrt::Windows::UI::Xaml::Controls::InkToolbarPenButton, winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton, winrt::Windows::UI::Xaml::Controls::RadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarPencilButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarPencilButtonT()
        {
            impl::call_factory<InkToolbarPencilButton, IInkToolbarPencilButtonFactory>([&](IInkToolbarPencilButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarRulerButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButton, winrt::Windows::UI::Xaml::Controls::ICheckBox, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbarRulerButton, winrt::Windows::UI::Xaml::Controls::InkToolbarToggleButton, winrt::Windows::UI::Xaml::Controls::CheckBox, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarRulerButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarRulerButtonT()
        {
            impl::call_factory<InkToolbarRulerButton, IInkToolbarRulerButtonFactory>([&](IInkToolbarRulerButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct InkToolbarStencilButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton, winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, InkToolbarStencilButton, winrt::Windows::UI::Xaml::Controls::InkToolbarMenuButton, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = InkToolbarStencilButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        InkToolbarStencilButtonT()
        {
            impl::call_factory<InkToolbarStencilButton, IInkToolbarStencilButtonFactory>([&](IInkToolbarStencilButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ItemsControlT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ItemsControl;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ItemsControlT()
        {
            impl::call_factory<ItemsControl, IItemsControlFactory>([&](IItemsControlFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListBoxT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IListBox, winrt::Windows::UI::Xaml::Controls::IListBox2, winrt::Windows::UI::Xaml::Controls::Primitives::ISelector, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ListBox, winrt::Windows::UI::Xaml::Controls::Primitives::Selector, winrt::Windows::UI::Xaml::Controls::ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListBox;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ListBoxT()
        {
            impl::call_factory<ListBox, IListBoxFactory>([&](IListBoxFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListBoxItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IListBoxItem, winrt::Windows::UI::Xaml::Controls::Primitives::ISelectorItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ListBoxItem, winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListBoxItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ListBoxItemT()
        {
            impl::call_factory<ListBoxItem, IListBoxItemFactory>([&](IListBoxItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListViewT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IListView, winrt::Windows::UI::Xaml::Controls::IListViewBase, winrt::Windows::UI::Xaml::Controls::IListViewBase2, winrt::Windows::UI::Xaml::Controls::IListViewBase3, winrt::Windows::UI::Xaml::Controls::IListViewBase4, winrt::Windows::UI::Xaml::Controls::IListViewBase5, winrt::Windows::UI::Xaml::Controls::IListViewBase6, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, winrt::Windows::UI::Xaml::Controls::Primitives::ISelector, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ListView, winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::Primitives::Selector, winrt::Windows::UI::Xaml::Controls::ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListView;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ListViewT()
        {
            impl::call_factory<ListView, IListViewFactory>([&](IListViewFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListViewBaseT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IListViewBase, winrt::Windows::UI::Xaml::Controls::IListViewBase2, winrt::Windows::UI::Xaml::Controls::IListViewBase3, winrt::Windows::UI::Xaml::Controls::IListViewBase4, winrt::Windows::UI::Xaml::Controls::IListViewBase5, winrt::Windows::UI::Xaml::Controls::IListViewBase6, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, winrt::Windows::UI::Xaml::Controls::Primitives::ISelector, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ListViewBase, winrt::Windows::UI::Xaml::Controls::Primitives::Selector, winrt::Windows::UI::Xaml::Controls::ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListViewBase;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ListViewBaseT()
        {
            impl::call_factory<ListViewBase, IListViewBaseFactory>([&](IListViewBaseFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListViewHeaderItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IListViewHeaderItem, winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ListViewHeaderItem, winrt::Windows::UI::Xaml::Controls::ListViewBaseHeaderItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListViewHeaderItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ListViewHeaderItemT()
        {
            impl::call_factory<ListViewHeaderItem, IListViewHeaderItemFactory>([&](IListViewHeaderItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ListViewItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IListViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::ISelectorItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ListViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ListViewItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ListViewItemT()
        {
            impl::call_factory<ListViewItem, IListViewItemFactory>([&](IListViewItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MediaPlayerElementT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, MediaPlayerElement, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MediaPlayerElement;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        MediaPlayerElementT()
        {
            impl::call_factory<MediaPlayerElement, IMediaPlayerElementFactory>([&](IMediaPlayerElementFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MediaPlayerPresenterT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, MediaPlayerPresenter, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MediaPlayerPresenter;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        MediaPlayerPresenterT()
        {
            impl::call_factory<MediaPlayerPresenter, IMediaPlayerPresenterFactory>([&](IMediaPlayerPresenterFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MediaTransportControlsT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3, winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, MediaTransportControls, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MediaTransportControls;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        MediaTransportControlsT()
        {
            impl::call_factory<MediaTransportControls, IMediaTransportControlsFactory>([&](IMediaTransportControlsFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MenuBarT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IMenuBar, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, MenuBar, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MenuBar;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        MenuBarT()
        {
            impl::call_factory<MenuBar, IMenuBarFactory>([&](IMenuBarFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MenuBarItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItem, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, MenuBarItem, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MenuBarItem;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        MenuBarItemT()
        {
            impl::call_factory<MenuBarItem, IMenuBarItemFactory>([&](IMenuBarItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MenuBarItemFlyoutT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyout, winrt::Windows::UI::Xaml::Controls::IMenuFlyout, winrt::Windows::UI::Xaml::Controls::IMenuFlyout2, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase2, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase3, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase4, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase6, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MenuBarItemFlyout, winrt::Windows::UI::Xaml::Controls::MenuFlyout, winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
    {
        using composable = MenuBarItemFlyout;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4>;
    protected:
        MenuBarItemFlyoutT()
        {
            impl::call_factory<MenuBarItemFlyout, IMenuBarItemFlyoutFactory>([&](IMenuBarItemFlyoutFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyout2>::ShowAt;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase>::ShowAt;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5>::ShowAt;
    };
    template <typename D, typename... Interfaces>
    struct MenuFlyoutT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyout, winrt::Windows::UI::Xaml::Controls::IMenuFlyout2, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase2, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase3, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase4, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase6, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, MenuFlyout, winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
    {
        using composable = MenuFlyout;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4>;
    protected:
        MenuFlyoutT()
        {
            impl::call_factory<MenuFlyout, IMenuFlyoutFactory>([&](IMenuFlyoutFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyout2>::ShowAt;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase>::ShowAt;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5>::ShowAt;
    };
    template <typename D, typename... Interfaces>
    struct MenuFlyoutItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBase, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, MenuFlyoutItem, winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MenuFlyoutItem;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        MenuFlyoutItemT()
        {
            impl::call_factory<MenuFlyoutItem, IMenuFlyoutItemFactory>([&](IMenuFlyoutItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MenuFlyoutPresenterT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, MenuFlyoutPresenter, winrt::Windows::UI::Xaml::Controls::ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MenuFlyoutPresenter;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        MenuFlyoutPresenterT()
        {
            impl::call_factory<MenuFlyoutPresenter, IMenuFlyoutPresenterFactory>([&](IMenuFlyoutPresenterFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct MenuFlyoutSeparatorT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparator, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBase, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, MenuFlyoutSeparator, winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = MenuFlyoutSeparator;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        MenuFlyoutSeparatorT()
        {
            impl::call_factory<MenuFlyoutSeparator, IMenuFlyoutSeparatorFactory>([&](IMenuFlyoutSeparatorFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::INavigationView, winrt::Windows::UI::Xaml::Controls::INavigationView2, winrt::Windows::UI::Xaml::Controls::INavigationView3, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, NavigationView, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = NavigationView;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        NavigationViewT()
        {
            impl::call_factory<NavigationView, INavigationViewFactory>([&](INavigationViewFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItem, winrt::Windows::UI::Xaml::Controls::INavigationViewItem2, winrt::Windows::UI::Xaml::Controls::INavigationViewItemBase, winrt::Windows::UI::Xaml::Controls::IListViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::ISelectorItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, NavigationViewItem, winrt::Windows::UI::Xaml::Controls::NavigationViewItemBase, winrt::Windows::UI::Xaml::Controls::ListViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = NavigationViewItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        NavigationViewItemT()
        {
            impl::call_factory<NavigationViewItem, INavigationViewItemFactory>([&](INavigationViewItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewItemHeaderT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeader, winrt::Windows::UI::Xaml::Controls::INavigationViewItemBase, winrt::Windows::UI::Xaml::Controls::IListViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::ISelectorItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, NavigationViewItemHeader, winrt::Windows::UI::Xaml::Controls::NavigationViewItemBase, winrt::Windows::UI::Xaml::Controls::ListViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = NavigationViewItemHeader;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        NavigationViewItemHeaderT()
        {
            impl::call_factory<NavigationViewItemHeader, INavigationViewItemHeaderFactory>([&](INavigationViewItemHeaderFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewItemSeparatorT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparator, winrt::Windows::UI::Xaml::Controls::INavigationViewItemBase, winrt::Windows::UI::Xaml::Controls::IListViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::ISelectorItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, NavigationViewItemSeparator, winrt::Windows::UI::Xaml::Controls::NavigationViewItemBase, winrt::Windows::UI::Xaml::Controls::ListViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = NavigationViewItemSeparator;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        NavigationViewItemSeparatorT()
        {
            impl::call_factory<NavigationViewItemSeparator, INavigationViewItemSeparatorFactory>([&](INavigationViewItemSeparatorFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewListT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::INavigationViewList, winrt::Windows::UI::Xaml::Controls::IListView, winrt::Windows::UI::Xaml::Controls::IListViewBase, winrt::Windows::UI::Xaml::Controls::IListViewBase2, winrt::Windows::UI::Xaml::Controls::IListViewBase3, winrt::Windows::UI::Xaml::Controls::IListViewBase4, winrt::Windows::UI::Xaml::Controls::IListViewBase5, winrt::Windows::UI::Xaml::Controls::IListViewBase6, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, winrt::Windows::UI::Xaml::Controls::Primitives::ISelector, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, NavigationViewList, winrt::Windows::UI::Xaml::Controls::ListView, winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::Primitives::Selector, winrt::Windows::UI::Xaml::Controls::ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = NavigationViewList;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        NavigationViewListT()
        {
            impl::call_factory<NavigationViewList, INavigationViewListFactory>([&](INavigationViewListFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct NavigationViewTemplateSettingsT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, NavigationViewTemplateSettings, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = NavigationViewTemplateSettings;
    protected:
        NavigationViewTemplateSettingsT()
        {
            impl::call_factory<NavigationViewTemplateSettings, INavigationViewTemplateSettingsFactory>([&](INavigationViewTemplateSettingsFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PageT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IPageOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IPage, winrt::Windows::UI::Xaml::Controls::IUserControl, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, Page, winrt::Windows::UI::Xaml::Controls::UserControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IPageOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Page;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IPageOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        PageT()
        {
            impl::call_factory<Page, IPageFactory>([&](IPageFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PanelT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IPanel, winrt::Windows::UI::Xaml::Controls::IPanel2, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, Panel, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Panel;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        PanelT()
        {
            impl::call_factory<Panel, IPanelFactory>([&](IPanelFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ParallaxViewT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IParallaxView, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ParallaxView, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ParallaxView;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ParallaxViewT()
        {
            impl::call_factory<ParallaxView, IParallaxViewFactory>([&](IParallaxViewFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PathIconT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IPathIcon, winrt::Windows::UI::Xaml::Controls::IIconElement, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, PathIcon, winrt::Windows::UI::Xaml::Controls::IconElement, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = PathIcon;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        PathIconT()
        {
            impl::call_factory<PathIcon, IPathIconFactory>([&](IPathIconFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PathIconSourceT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IPathIconSource, winrt::Windows::UI::Xaml::Controls::IIconSource, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, PathIconSource, winrt::Windows::UI::Xaml::Controls::IconSource, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = PathIconSource;
    protected:
        PathIconSourceT()
        {
            impl::call_factory<PathIconSource, IPathIconSourceFactory>([&](IPathIconSourceFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PersonPictureT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IPersonPicture, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, PersonPicture, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = PersonPicture;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        PersonPictureT()
        {
            impl::call_factory<PersonPicture, IPersonPictureFactory>([&](IPersonPictureFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PivotT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IPivot, winrt::Windows::UI::Xaml::Controls::IPivot2, winrt::Windows::UI::Xaml::Controls::IPivot3, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, Pivot, winrt::Windows::UI::Xaml::Controls::ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Pivot;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        PivotT()
        {
            impl::call_factory<Pivot, IPivotFactory>([&](IPivotFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct PivotItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IPivotItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, PivotItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = PivotItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        PivotItemT()
        {
            impl::call_factory<PivotItem, IPivotItemFactory>([&](IPivotItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ProgressBarT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IProgressBar, winrt::Windows::UI::Xaml::Controls::Primitives::IRangeBase, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ProgressBar, winrt::Windows::UI::Xaml::Controls::Primitives::RangeBase, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ProgressBar;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ProgressBarT()
        {
            impl::call_factory<ProgressBar, IProgressBarFactory>([&](IProgressBarFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RadioButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IRadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::IButtonBase, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, RadioButton, winrt::Windows::UI::Xaml::Controls::Primitives::ToggleButton, winrt::Windows::UI::Xaml::Controls::Primitives::ButtonBase, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RadioButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IToggleButtonOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        RadioButtonT()
        {
            impl::call_factory<RadioButton, IRadioButtonFactory>([&](IRadioButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RatingControlT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IRatingControl, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, RatingControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RatingControl;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        RatingControlT()
        {
            impl::call_factory<RatingControl, IRatingControlFactory>([&](IRatingControlFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RatingItemFontInfoT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo, winrt::Windows::UI::Xaml::Controls::IRatingItemInfo, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RatingItemFontInfo, winrt::Windows::UI::Xaml::Controls::RatingItemInfo, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = RatingItemFontInfo;
    protected:
        RatingItemFontInfoT()
        {
            impl::call_factory<RatingItemFontInfo, IRatingItemFontInfoFactory>([&](IRatingItemFontInfoFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RatingItemImageInfoT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo, winrt::Windows::UI::Xaml::Controls::IRatingItemInfo, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RatingItemImageInfo, winrt::Windows::UI::Xaml::Controls::RatingItemInfo, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = RatingItemImageInfo;
    protected:
        RatingItemImageInfoT()
        {
            impl::call_factory<RatingItemImageInfo, IRatingItemImageInfoFactory>([&](IRatingItemImageInfoFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RatingItemInfoT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IRatingItemInfo, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, RatingItemInfo, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = RatingItemInfo;
    protected:
        RatingItemInfoT()
        {
            impl::call_factory<RatingItemInfo, IRatingItemInfoFactory>([&](IRatingItemInfoFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RefreshContainerT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IRefreshContainer, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, RefreshContainer, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RefreshContainer;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        RefreshContainerT()
        {
            impl::call_factory<RefreshContainer, IRefreshContainerFactory>([&](IRefreshContainerFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RefreshVisualizerT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, RefreshVisualizer, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RefreshVisualizer;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        RefreshVisualizerT()
        {
            impl::call_factory<RefreshVisualizer, IRefreshVisualizerFactory>([&](IRefreshVisualizerFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RelativePanelT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IRelativePanel, winrt::Windows::UI::Xaml::Controls::IRelativePanel2, winrt::Windows::UI::Xaml::Controls::IPanel, winrt::Windows::UI::Xaml::Controls::IPanel2, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, RelativePanel, winrt::Windows::UI::Xaml::Controls::Panel, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RelativePanel;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        RelativePanelT()
        {
            impl::call_factory<RelativePanel, IRelativePanelFactory>([&](IRelativePanelFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct RichEditBoxT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IRichEditBox, winrt::Windows::UI::Xaml::Controls::IRichEditBox2, winrt::Windows::UI::Xaml::Controls::IRichEditBox3, winrt::Windows::UI::Xaml::Controls::IRichEditBox4, winrt::Windows::UI::Xaml::Controls::IRichEditBox5, winrt::Windows::UI::Xaml::Controls::IRichEditBox6, winrt::Windows::UI::Xaml::Controls::IRichEditBox7, winrt::Windows::UI::Xaml::Controls::IRichEditBox8, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, RichEditBox, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = RichEditBox;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        RichEditBoxT()
        {
            impl::call_factory<RichEditBox, IRichEditBoxFactory>([&](IRichEditBoxFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SearchBoxT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISearchBox, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, SearchBox, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SearchBox;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        SearchBoxT()
        {
            impl::call_factory<SearchBox, ISearchBoxFactory>([&](ISearchBoxFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SelectionChangedEventArgsT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs, winrt::Windows::UI::Xaml::IRoutedEventArgs>,
        impl::base<D, SelectionChangedEventArgs, winrt::Windows::UI::Xaml::RoutedEventArgs>
    {
        using composable = SelectionChangedEventArgs;
    protected:
        SelectionChangedEventArgsT(param::vector<winrt::Windows::Foundation::IInspectable> const& removedItems, param::vector<winrt::Windows::Foundation::IInspectable> const& addedItems)
        {
            impl::call_factory<SelectionChangedEventArgs, ISelectionChangedEventArgsFactory>([&](ISelectionChangedEventArgsFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstanceWithRemovedItemsAndAddedItems(removedItems, addedItems, *this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SettingsFlyoutT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISettingsFlyout, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, SettingsFlyout, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SettingsFlyout;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        SettingsFlyoutT()
        {
            impl::call_factory<SettingsFlyout, ISettingsFlyoutFactory>([&](ISettingsFlyoutFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SliderT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISlider, winrt::Windows::UI::Xaml::Controls::ISlider2, winrt::Windows::UI::Xaml::Controls::Primitives::IRangeBase, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, Slider, winrt::Windows::UI::Xaml::Controls::Primitives::RangeBase, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = Slider;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IRangeBaseOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        SliderT()
        {
            impl::call_factory<Slider, ISliderFactory>([&](ISliderFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SplitButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISplitButton, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, SplitButton, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SplitButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        SplitButtonT()
        {
            impl::call_factory<SplitButton, ISplitButtonFactory>([&](ISplitButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SplitButtonAutomationPeerT :
        implements<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeer, winrt::Windows::UI::Xaml::Automation::Provider::IExpandCollapseProvider, winrt::Windows::UI::Xaml::Automation::Provider::IInvokeProvider, winrt::Windows::UI::Xaml::Automation::Peers::IFrameworkElementAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer2, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer3, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer4, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer5, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer6, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer7, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer8, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer9, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected>,
        impl::base<D, SplitButtonAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::FrameworkElementAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::AutomationPeer, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverridesT<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9T<D>
    {
        using composable = SplitButtonAutomationPeer;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9>;
    protected:
        SplitButtonAutomationPeerT(winrt::Windows::UI::Xaml::Controls::SplitButton const& owner)
        {
            impl::call_factory<SplitButtonAutomationPeer, ISplitButtonAutomationPeerFactory>([&](ISplitButtonAutomationPeerFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(owner, *this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SplitViewT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISplitView, winrt::Windows::UI::Xaml::Controls::ISplitView2, winrt::Windows::UI::Xaml::Controls::ISplitView3, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, SplitView, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SplitView;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        SplitViewT()
        {
            impl::call_factory<SplitView, ISplitViewFactory>([&](ISplitViewFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct StackPanelT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IStackPanel, winrt::Windows::UI::Xaml::Controls::IStackPanel2, winrt::Windows::UI::Xaml::Controls::IStackPanel4, winrt::Windows::UI::Xaml::Controls::IStackPanel5, winrt::Windows::UI::Xaml::Controls::Primitives::IScrollSnapPointsInfo, winrt::Windows::UI::Xaml::Controls::IInsertionPanel, winrt::Windows::UI::Xaml::Controls::IPanel, winrt::Windows::UI::Xaml::Controls::IPanel2, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, StackPanel, winrt::Windows::UI::Xaml::Controls::Panel, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = StackPanel;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        StackPanelT()
        {
            impl::call_factory<StackPanel, IStackPanelFactory>([&](IStackPanelFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct StyleSelectorT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IStyleSelector>,
        impl::base<D, StyleSelector>,
        winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverridesT<D>
    {
        using composable = StyleSelector;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides>;
    protected:
        StyleSelectorT()
        {
            impl::call_factory<StyleSelector, IStyleSelectorFactory>([&](IStyleSelectorFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SwapChainBackgroundPanelT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel, winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2, winrt::Windows::UI::Xaml::Controls::IGrid, winrt::Windows::UI::Xaml::Controls::IGrid2, winrt::Windows::UI::Xaml::Controls::IGrid3, winrt::Windows::UI::Xaml::Controls::IGrid4, winrt::Windows::UI::Xaml::Controls::IPanel, winrt::Windows::UI::Xaml::Controls::IPanel2, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, SwapChainBackgroundPanel, winrt::Windows::UI::Xaml::Controls::Grid, winrt::Windows::UI::Xaml::Controls::Panel, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SwapChainBackgroundPanel;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        SwapChainBackgroundPanelT()
        {
            impl::call_factory<SwapChainBackgroundPanel, ISwapChainBackgroundPanelFactory>([&](ISwapChainBackgroundPanelFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SwapChainPanelT :
        implements<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISwapChainPanel, winrt::Windows::UI::Xaml::Controls::IGrid, winrt::Windows::UI::Xaml::Controls::IGrid2, winrt::Windows::UI::Xaml::Controls::IGrid3, winrt::Windows::UI::Xaml::Controls::IGrid4, winrt::Windows::UI::Xaml::Controls::IPanel, winrt::Windows::UI::Xaml::Controls::IPanel2, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, SwapChainPanel, winrt::Windows::UI::Xaml::Controls::Grid, winrt::Windows::UI::Xaml::Controls::Panel, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SwapChainPanel;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        SwapChainPanelT()
        {
            impl::call_factory<SwapChainPanel, ISwapChainPanelFactory>([&](ISwapChainPanelFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SwipeControlT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISwipeControl, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, SwipeControl, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = SwipeControl;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        SwipeControlT()
        {
            impl::call_factory<SwipeControl, ISwipeControlFactory>([&](ISwipeControlFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SwipeItemT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISwipeItem, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SwipeItem, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = SwipeItem;
    protected:
        SwipeItemT()
        {
            impl::call_factory<SwipeItem, ISwipeItemFactory>([&](ISwipeItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SwipeItemsT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISwipeItems, winrt::Windows::Foundation::Collections::IIterable<winrt::Windows::UI::Xaml::Controls::SwipeItem>, winrt::Windows::Foundation::Collections::IVector<winrt::Windows::UI::Xaml::Controls::SwipeItem>, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SwipeItems, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = SwipeItems;
    protected:
        SwipeItemsT()
        {
            impl::call_factory<SwipeItems, ISwipeItemsFactory>([&](ISwipeItemsFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct SymbolIconSourceT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ISymbolIconSource, winrt::Windows::UI::Xaml::Controls::IIconSource, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, SymbolIconSource, winrt::Windows::UI::Xaml::Controls::IconSource, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = SymbolIconSource;
    protected:
        SymbolIconSourceT()
        {
            impl::call_factory<SymbolIconSource, ISymbolIconSourceFactory>([&](ISymbolIconSourceFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TextBoxT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ITextBox, winrt::Windows::UI::Xaml::Controls::ITextBox2, winrt::Windows::UI::Xaml::Controls::ITextBox3, winrt::Windows::UI::Xaml::Controls::ITextBox4, winrt::Windows::UI::Xaml::Controls::ITextBox5, winrt::Windows::UI::Xaml::Controls::ITextBox6, winrt::Windows::UI::Xaml::Controls::ITextBox7, winrt::Windows::UI::Xaml::Controls::ITextBox8, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, TextBox, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TextBox;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        TextBoxT()
        {
            impl::call_factory<TextBox, ITextBoxFactory>([&](ITextBoxFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TextCommandBarFlyoutT :
        implements<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyout, winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase2, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase3, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase4, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase6, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TextCommandBarFlyout, winrt::Windows::UI::Xaml::Controls::CommandBarFlyout, winrt::Windows::UI::Xaml::Controls::Primitives::FlyoutBase, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverridesT<D>, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4T<D>
    {
        using composable = TextCommandBarFlyout;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBaseOverrides4>;
    protected:
        TextCommandBarFlyoutT()
        {
            impl::call_factory<TextCommandBarFlyout, ITextCommandBarFlyoutFactory>([&](ITextCommandBarFlyoutFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase>::ShowAt;
        using impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::Primitives::IFlyoutBase5>::ShowAt;
    };
    template <typename D, typename... Interfaces>
    struct TimePickerT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ITimePicker, winrt::Windows::UI::Xaml::Controls::ITimePicker2, winrt::Windows::UI::Xaml::Controls::ITimePicker3, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, TimePicker, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TimePicker;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        TimePickerT()
        {
            impl::call_factory<TimePicker, ITimePickerFactory>([&](ITimePickerFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ToggleMenuFlyoutItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3, winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBase, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ToggleMenuFlyoutItem, winrt::Windows::UI::Xaml::Controls::MenuFlyoutItem, winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ToggleMenuFlyoutItem;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ToggleMenuFlyoutItemT()
        {
            impl::call_factory<ToggleMenuFlyoutItem, IToggleMenuFlyoutItemFactory>([&](IToggleMenuFlyoutItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ToggleSplitButtonT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButton, winrt::Windows::UI::Xaml::Controls::ISplitButton, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ToggleSplitButton, winrt::Windows::UI::Xaml::Controls::SplitButton, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ToggleSplitButton;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ToggleSplitButtonT()
        {
            impl::call_factory<ToggleSplitButton, IToggleSplitButtonFactory>([&](IToggleSplitButtonFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ToggleSplitButtonAutomationPeerT :
        implements<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeer, winrt::Windows::UI::Xaml::Automation::Provider::IExpandCollapseProvider, winrt::Windows::UI::Xaml::Automation::Provider::IToggleProvider, winrt::Windows::UI::Xaml::Automation::Peers::IFrameworkElementAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer2, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer3, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer4, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer5, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer6, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer7, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer8, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeer9, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected>,
        impl::base<D, ToggleSplitButtonAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::FrameworkElementAutomationPeer, winrt::Windows::UI::Xaml::Automation::Peers::AutomationPeer, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverridesT<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8T<D>, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9T<D>
    {
        using composable = ToggleSplitButtonAutomationPeer;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides3>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides4>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides5>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides6>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Automation::Peers::IAutomationPeerOverrides9>;
    protected:
        ToggleSplitButtonAutomationPeerT(winrt::Windows::UI::Xaml::Controls::ToggleSplitButton const& owner)
        {
            impl::call_factory<ToggleSplitButtonAutomationPeer, IToggleSplitButtonAutomationPeerFactory>([&](IToggleSplitButtonAutomationPeerFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(owner, *this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct ToolTipT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IToolTip, winrt::Windows::UI::Xaml::Controls::IToolTip2, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, ToolTip, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = ToolTip;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        ToolTipT()
        {
            impl::call_factory<ToolTip, IToolTipFactory>([&](IToolTipFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TreeViewT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ITreeView, winrt::Windows::UI::Xaml::Controls::ITreeView2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, TreeView, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TreeView;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        TreeViewT()
        {
            impl::call_factory<TreeView, ITreeViewFactory>([&](ITreeViewFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TreeViewItemT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItem, winrt::Windows::UI::Xaml::Controls::ITreeViewItem2, winrt::Windows::UI::Xaml::Controls::IListViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::ISelectorItem, winrt::Windows::UI::Xaml::Controls::IContentControl, winrt::Windows::UI::Xaml::Controls::IContentControl2, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, TreeViewItem, winrt::Windows::UI::Xaml::Controls::ListViewItem, winrt::Windows::UI::Xaml::Controls::Primitives::SelectorItem, winrt::Windows::UI::Xaml::Controls::ContentControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IContentControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TreeViewItem;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IContentControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        TreeViewItemT()
        {
            impl::call_factory<TreeViewItem, ITreeViewItemFactory>([&](ITreeViewItemFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TreeViewItemTemplateSettingsT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TreeViewItemTemplateSettings, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = TreeViewItemTemplateSettings;
    protected:
        TreeViewItemTemplateSettingsT()
        {
            impl::call_factory<TreeViewItemTemplateSettings, ITreeViewItemTemplateSettingsFactory>([&](ITreeViewItemTemplateSettingsFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TreeViewListT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ITreeViewList, winrt::Windows::UI::Xaml::Controls::IListView, winrt::Windows::UI::Xaml::Controls::IListViewBase, winrt::Windows::UI::Xaml::Controls::IListViewBase2, winrt::Windows::UI::Xaml::Controls::IListViewBase3, winrt::Windows::UI::Xaml::Controls::IListViewBase4, winrt::Windows::UI::Xaml::Controls::IListViewBase5, winrt::Windows::UI::Xaml::Controls::IListViewBase6, winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation, winrt::Windows::UI::Xaml::Controls::Primitives::ISelector, winrt::Windows::UI::Xaml::Controls::IItemsControl, winrt::Windows::UI::Xaml::Controls::IItemsControl2, winrt::Windows::UI::Xaml::Controls::IItemsControl3, winrt::Windows::UI::Xaml::Controls::IItemContainerMapping, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, TreeViewList, winrt::Windows::UI::Xaml::Controls::ListView, winrt::Windows::UI::Xaml::Controls::ListViewBase, winrt::Windows::UI::Xaml::Controls::Primitives::Selector, winrt::Windows::UI::Xaml::Controls::ItemsControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IItemsControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TreeViewList;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        TreeViewListT()
        {
            impl::call_factory<TreeViewList, ITreeViewListFactory>([&](ITreeViewListFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TreeViewNodeT :
        implements<D, winrt::Windows::Foundation::IInspectable, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ITreeViewNode, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        impl::base<D, TreeViewNode, winrt::Windows::UI::Xaml::DependencyObject>
    {
        using composable = TreeViewNode;
    protected:
        TreeViewNodeT()
        {
            impl::call_factory<TreeViewNode, ITreeViewNodeFactory>([&](ITreeViewNodeFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct TwoPaneViewT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::ITwoPaneView, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, TwoPaneView, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = TwoPaneView;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        TwoPaneViewT()
        {
            impl::call_factory<TwoPaneView, ITwoPaneViewFactory>([&](ITwoPaneViewFactory const& f) { [[maybe_unused]] auto winrt_impl_discarded = f.CreateInstance(*this, this->m_inner); });
        }
    };
    template <typename D, typename... Interfaces>
    struct UserControlT :
        implements<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides, winrt::Windows::UI::Xaml::Controls::IControlOverrides6, winrt::Windows::UI::Xaml::IFrameworkElementOverrides, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2, winrt::Windows::UI::Xaml::IUIElementOverrides, winrt::Windows::UI::Xaml::IUIElementOverrides7, winrt::Windows::UI::Xaml::IUIElementOverrides8, winrt::Windows::UI::Xaml::IUIElementOverrides9, composing, Interfaces...>,
        impl::require<D, winrt::Windows::UI::Xaml::Controls::IUserControl, winrt::Windows::UI::Xaml::Controls::IControl, winrt::Windows::UI::Xaml::Controls::IControl2, winrt::Windows::UI::Xaml::Controls::IControl3, winrt::Windows::UI::Xaml::Controls::IControl4, winrt::Windows::UI::Xaml::Controls::IControl5, winrt::Windows::UI::Xaml::Controls::IControl7, winrt::Windows::UI::Xaml::IFrameworkElement, winrt::Windows::UI::Xaml::IFrameworkElement2, winrt::Windows::UI::Xaml::IFrameworkElement3, winrt::Windows::UI::Xaml::IFrameworkElement4, winrt::Windows::UI::Xaml::IFrameworkElement6, winrt::Windows::UI::Xaml::IFrameworkElement7, winrt::Windows::UI::Xaml::IUIElement, winrt::Windows::UI::Xaml::IUIElement2, winrt::Windows::UI::Xaml::IUIElement3, winrt::Windows::UI::Xaml::IUIElement4, winrt::Windows::UI::Xaml::IUIElement5, winrt::Windows::UI::Xaml::IUIElement7, winrt::Windows::UI::Xaml::IUIElement8, winrt::Windows::UI::Xaml::IUIElement9, winrt::Windows::UI::Xaml::IUIElement10, winrt::Windows::UI::Composition::IAnimationObject, winrt::Windows::UI::Composition::IVisualElement, winrt::Windows::UI::Xaml::IDependencyObject, winrt::Windows::UI::Xaml::IDependencyObject2>,
        protected impl::require<D, winrt::Windows::UI::Xaml::Controls::IControlProtected, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>,
        impl::base<D, UserControl, winrt::Windows::UI::Xaml::Controls::Control, winrt::Windows::UI::Xaml::FrameworkElement, winrt::Windows::UI::Xaml::UIElement, winrt::Windows::UI::Xaml::DependencyObject>,
        winrt::Windows::UI::Xaml::Controls::IControlOverridesT<D>, winrt::Windows::UI::Xaml::Controls::IControlOverrides6T<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverridesT<D>, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2T<D>, winrt::Windows::UI::Xaml::IUIElementOverridesT<D>, winrt::Windows::UI::Xaml::IUIElementOverrides7T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides8T<D>, winrt::Windows::UI::Xaml::IUIElementOverrides9T<D>
    {
        using composable = UserControl;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::Controls::IControlProtected>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::Controls::IControlOverrides6>;
        friend impl::consume_t<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::require_one<D, winrt::Windows::UI::Xaml::IFrameworkElementProtected7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides7>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides8>;
        friend impl::produce<D, winrt::Windows::UI::Xaml::IUIElementOverrides9>;
    protected:
        UserControlT()
        {
            impl::call_factory<UserControl, IUserControlFactory>([&](IUserControlFactory 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::Windows::UI::Xaml::Controls::IAnchorRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBar> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBar2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBar3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBar4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButton3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButton4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButton5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarButtonStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarElementContainerStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarOverrides3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarSeparator> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarSeparatorStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButton5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAppBarToggleButtonStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBox4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxQuerySubmittedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxSuggestionChosenEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IAutoSuggestBoxTextChangedEventArgsStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBackClickEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIcon> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIcon2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconSource> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconSourceStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBitmapIconStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBorder> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBorder2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBorderStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IBorderStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IButtonStaticsWithFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IButtonWithFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePicker3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerDateChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarDatePickerStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarView2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewDayItemStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewSelectedDatesChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICalendarViewStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICandidateWindowBoundsChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICanvas> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICanvasFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICanvasStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICaptureElement> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICaptureElementStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICheckBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICheckBoxFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IChoosingGroupHeaderContainerEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IChoosingItemContainerEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICleanUpVirtualizedItemEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColorChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColorPicker> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColorPickerFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColorPickerStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColumnDefinition> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IColumnDefinitionStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBox6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxStatics6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IComboBoxTextSubmittedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBar> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBar2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBar3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarElement> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarElement2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarFlyoutFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarOverflowPresenterFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ICommandBarStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContainerContentChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentControl2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentControlFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentControlOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentControlStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialog> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialog2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialog3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickDeferral> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogButtonClickEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogClosedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingDeferral> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogClosingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogOpenedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentDialogStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentLinkChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenter2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenter3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenter4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenter5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContentPresenterStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IContextMenuEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControl7> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlOverrides6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlProtected> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlStatics7> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IControlTemplate> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelector2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDataTemplateSelectorOverrides2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePicker> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePicker2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePicker3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyout2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutItemStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenter2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutPresenterStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerFlyoutStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerSelectedValueChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDatePickerValueChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDragItemsCompletedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDragItemsStartingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDropDownButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDropDownButtonAutomationPeerFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDropDownButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IDynamicOverflowItemsChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipView2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipViewFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipViewItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipViewItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlipViewStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenter2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutPresenterStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFlyoutStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFocusDisengagedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFocusEngagedEventArgs2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIcon> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIcon2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIcon3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconSource> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconSourceFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconSourceStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFontIconStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrame> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrame2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrame3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrame4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrame5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrameFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrameStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrameStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IFrameStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGrid> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGrid2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGrid3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGrid4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridViewFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridViewHeaderItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridViewItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGridViewItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyle> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyle2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyleFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelector> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IGroupStyleSelectorOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingPanelClosedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingPanelOpenedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingView2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingViewCandidatesChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingViewFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingViewStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHandwritingViewTextSubmittedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHub> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubSection> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubSectionFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubSectionHeaderClickEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubSectionStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHubStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHyperlinkButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IHyperlinkButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconElement> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconElementFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconElementStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSource> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSourceElement> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSourceElementFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSourceElementStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSourceFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIconSourceStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IImage> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IImage2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IImage3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IImageStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkCanvas> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkCanvasFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbar> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbar2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbar3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarBallpointPenButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPen> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomPenOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToggleButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarCustomToolButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButton2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarEraserButtonStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarFlyoutItemStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarHighlighterButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarIsStencilButtonCheckedChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarMenuButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPenConfigurationControlStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarPencilButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarRulerButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarStencilButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarToggleButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInkToolbarToolButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IInsertionPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IIsTextTrimmedChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemClickEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemContainerGenerator> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemContainerMapping> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControl2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControl3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControlFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControlOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsControlStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPanelTemplate> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPickedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPresenter2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsPresenterStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsStackPanel2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsStackPanelStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsWrapGrid2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IItemsWrapGridStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBox2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBoxFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBoxItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBoxItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBoxStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListBoxStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListPickerFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListPickerFlyoutStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBase6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseHeaderItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewBaseStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewHeaderItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewHeaderItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelper> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IListViewPersistenceHelperStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaElement> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaElement2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaElement3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaElementStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElement> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerElementStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaPlayerPresenterStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControls4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelper> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsHelperStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMediaTransportControlsStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBar> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarItemFlyoutFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarItemStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuBarStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyout2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItem3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBase> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemBaseFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutItemStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenter3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutPresenterStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparator> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSeparatorFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItem2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IMenuFlyoutSubItemStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigate> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationView2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationView3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewBackRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewDisplayModeChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItem2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemBase> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemBaseFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeader> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemHeaderFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemInvokedEventArgs2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparator> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemSeparatorFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewItemStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewList> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewListFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewPaneClosingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewSelectionChangedEventArgs2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettings> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INavigationViewTemplateSettingsStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::INotifyEventArgs2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPage> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPageFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPageOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPageStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPanel2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPanelFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPanelStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IParallaxView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IParallaxViewFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IParallaxViewStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBox2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBox3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBox4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBox5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBoxPasswordChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPasswordBoxStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIcon> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIconFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIconSource> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIconSourceFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIconSourceStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPathIconStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPersonPicture> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPersonPictureFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPersonPictureStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPickerConfirmedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPickerFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPickerFlyoutStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivot> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivot2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivot3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotItemEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotItemStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IPivotStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IProgressBar> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IProgressBarFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IProgressBarStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IProgressRing> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IProgressRingStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRadioButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRadioButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRadioButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingControlFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingControlStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfo> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemFontInfoStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfo> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemImageInfoStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemInfo> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRatingItemInfoFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshContainer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshContainerFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshContainerStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshInteractionRatioChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshStateChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRefreshVisualizerStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRelativePanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRelativePanel2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRelativePanelFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRelativePanelStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox7> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBox8> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxSelectionChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics7> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxStatics8> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichEditBoxTextChangingEventArgs2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlock6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflow3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockOverflowStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRichTextBlockStatics6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRowDefinition> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IRowDefinitionStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollAnchorProvider> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenter2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollContentPresenterStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewer2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewer3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewer4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IScrollViewerViewChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxQueryChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxQuerySubmittedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxResultSuggestionChosenEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISearchBoxSuggestionsRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISectionsInViewChangedEventArgsFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISelectionChangedEventArgsFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISemanticZoom> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISemanticZoomInformation> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISemanticZoomLocation> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISemanticZoomStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISemanticZoomViewChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISettingsFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISettingsFlyoutStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISlider> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISlider2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISliderFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISliderStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISliderStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButtonAutomationPeerFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButtonClickEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitButtonStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitView2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitView3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitViewFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitViewPaneClosingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISplitViewStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanel2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanel4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanel5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanelFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStackPanelStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStyleSelector> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStyleSelectorFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IStyleSelectorOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanel2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainBackgroundPanelFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwapChainPanelStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeControlFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeControlStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItemInvokedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItemStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItems> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItemsFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISwipeItemsStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIcon> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIconFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIconSource> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIconSourceStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ISymbolIconStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlock7> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBlockStatics7> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox7> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBox8> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxBeforeTextChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxSelectionChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics7> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxStatics8> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextBoxTextChangingEventArgs2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextCommandBarFlyoutFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextCompositionChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextCompositionEndedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextCompositionStartedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextControlCopyingToClipboardEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextControlCuttingToClipboardEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITextControlPasteEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePicker> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePicker2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePicker3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenter2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutPresenterStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerFlyoutStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerSelectedValueChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITimePickerValueChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleMenuFlyoutItemStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSplitButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonAutomationPeerFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSplitButtonIsCheckedChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSwitch> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSwitchOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToggleSwitchStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTip> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTip2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTipFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTipService> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTipServiceStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTipStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IToolTipStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeView2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewCollapsedEventArgs2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsCompletedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewDragItemsStartingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewExpandingEventArgs2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItem2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemInvokedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettings> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewItemTemplateSettingsStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewList> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewListFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewNode> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewNodeStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITreeViewStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITwoPaneView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ITwoPaneViewStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IUIElementCollection> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IUserControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IUserControlFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IUserControlStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGrid> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVariableSizedWrapGridStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IViewbox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IViewboxStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelFactory> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingPanelProtected> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelOverrides> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IVirtualizingStackPanelStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView6> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebView7> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewBrush> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewBrushStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewContentLoadingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewDOMContentLoadedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewDeferredPermissionRequest> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewFactory4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewLongRunningScriptDetectedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationCompletedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationFailedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewNavigationStartingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewNewWindowRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequest> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewPermissionRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewSeparateProcessLostEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewSettings> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewStatics2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewStatics3> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewStatics4> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewStatics5> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewUnsupportedUriSchemeIdentifiedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewUnviewableContentIdentifiedEventArgs2> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWebViewWebResourceRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWrapGrid> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IWrapGridStatics> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AnchorRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AppBar> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AppBarButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AppBarElementContainer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AppBarSeparator> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AppBarToggleButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AutoSuggestBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxQuerySubmittedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxSuggestionChosenEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::AutoSuggestBoxTextChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::BackClickEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::BitmapIcon> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::BitmapIconSource> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Border> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Button> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarDatePicker> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarDatePickerDateChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarViewDayItemChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CalendarViewSelectedDatesChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CandidateWindowBoundsChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Canvas> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CaptureElement> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CheckBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ChoosingGroupHeaderContainerEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ChoosingItemContainerEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CleanUpVirtualizedItemEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ColorChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ColorPicker> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ColumnDefinition> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ColumnDefinitionCollection> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ComboBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ComboBoxItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ComboBoxTextSubmittedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CommandBar> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CommandBarFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::CommandBarOverflowPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialog> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickDeferral> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogButtonClickEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogClosedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogClosingDeferral> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogClosingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentDialogOpenedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentLinkChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContentPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ContextMenuEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Control> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ControlTemplate> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DataTemplateSelector> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePicker> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickerFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickerFlyoutItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickerFlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickerSelectedValueChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DatePickerValueChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DragItemsCompletedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DragItemsStartingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DropDownButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DropDownButtonAutomationPeer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::DynamicOverflowItemsChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FlipView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FlipViewItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Flyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FocusDisengagedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FocusEngagedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FontIcon> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::FontIconSource> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Frame> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Grid> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GridView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GridViewHeaderItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GridViewItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GroupItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GroupStyle> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::GroupStyleSelector> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HandwritingPanelClosedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HandwritingPanelOpenedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HandwritingView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HandwritingViewCandidatesChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HandwritingViewTextSubmittedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Hub> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HubSection> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HubSectionCollection> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HubSectionHeaderClickEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::HyperlinkButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IconElement> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IconSource> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IconSourceElement> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Image> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkCanvas> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbar> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarBallpointPenButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPen> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomPenButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomToggleButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarCustomToolButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarEraserButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarFlyoutItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarHighlighterButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarIsStencilButtonCheckedChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarMenuButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarPenButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarPenConfigurationControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarPencilButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarRulerButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarStencilButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarToggleButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::InkToolbarToolButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::IsTextTrimmedChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemClickEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemCollection> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemContainerGenerator> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsPanelTemplate> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsPickedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsStackPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ItemsWrapGrid> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListBoxItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListPickerFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListPickerFlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListViewBase> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListViewBaseHeaderItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListViewHeaderItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListViewItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ListViewPersistenceHelper> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MediaElement> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MediaPlayerElement> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MediaPlayerPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MediaTransportControls> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MediaTransportControlsHelper> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuBar> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuBarItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuBarItemFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyoutItemBase> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyoutSeparator> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::MenuFlyoutSubItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewBackRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewDisplayModeChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewItemBase> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewItemHeader> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewItemSeparator> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewList> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewPaneClosingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NavigationViewTemplateSettings> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::NotifyEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Page> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Panel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ParallaxView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PasswordBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PasswordBoxPasswordChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PathIcon> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PathIconSource> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PersonPicture> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PickerConfirmedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PickerFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PickerFlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Pivot> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PivotItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::PivotItemEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ProgressBar> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ProgressRing> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RadioButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RatingControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RatingItemFontInfo> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RatingItemImageInfo> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RatingItemInfo> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RefreshContainer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RefreshInteractionRatioChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RefreshRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RefreshStateChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RefreshVisualizer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RelativePanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RichEditBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RichEditBoxSelectionChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RichEditBoxTextChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RichTextBlock> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RichTextBlockOverflow> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RowDefinition> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::RowDefinitionCollection> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ScrollContentPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ScrollViewer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ScrollViewerView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ScrollViewerViewChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SearchBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SearchBoxQueryChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SearchBoxQuerySubmittedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SearchBoxResultSuggestionChosenEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SearchBoxSuggestionsRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SectionsInViewChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SelectionChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SemanticZoom> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SemanticZoomLocation> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SettingsFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Slider> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SplitButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SplitButtonAutomationPeer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SplitButtonClickEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SplitView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SplitViewPaneClosingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::StackPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::StyleSelector> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwapChainBackgroundPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwapChainPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwipeControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwipeItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwipeItemInvokedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SwipeItems> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SymbolIcon> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::SymbolIconSource> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextBlock> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextBox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextBoxBeforeTextChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextBoxSelectionChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextBoxTextChangingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextCommandBarFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextCompositionChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextCompositionEndedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextCompositionStartedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextControlCopyingToClipboardEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextControlCuttingToClipboardEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TextControlPasteEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePickedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePicker> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePickerFlyout> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePickerFlyoutPresenter> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePickerSelectedValueChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TimePickerValueChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToggleMenuFlyoutItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToggleSplitButton> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToggleSplitButtonAutomationPeer> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToggleSplitButtonIsCheckedChangedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToggleSwitch> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToolTip> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::ToolTipService> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewCollapsedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsCompletedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewDragItemsStartingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewExpandingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewItem> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewItemInvokedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewItemTemplateSettings> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewList> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TreeViewNode> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::TwoPaneView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::UIElementCollection> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::UserControl> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::VariableSizedWrapGrid> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::Viewbox> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::VirtualizingPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::VirtualizingStackPanel> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebView> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewBrush> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewContentLoadingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewDOMContentLoadedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewDeferredPermissionRequest> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewLongRunningScriptDetectedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewNavigationCompletedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewNavigationFailedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewNavigationStartingEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewNewWindowRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewPermissionRequest> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewPermissionRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewSeparateProcessLostEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewSettings> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewUnsupportedUriSchemeIdentifiedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewUnviewableContentIdentifiedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WebViewWebResourceRequestedEventArgs> : winrt::impl::hash_base {};
    template<> struct hash<winrt::Windows::UI::Xaml::Controls::WrapGrid> : winrt::impl::hash_base {};
#endif
#ifdef __cpp_lib_format
#endif
}
#endif
